Heim Backend-Entwicklung Python-Tutorial Detailliertes Beispiel für die Anpassung der Organisationsstruktur (Python)

Detailliertes Beispiel für die Anpassung der Organisationsstruktur (Python)

Apr 26, 2017 am 11:17 AM
flask

Die Geburt einer flaschenbasierten Webanwendung ist der siebte Artikel, der hauptsächlich die Anpassung der Organisationsstruktur vorstellt und einen gewissen Referenzwert hat.

Alle Py-Codes sind Alles in der Datei default.py geschrieben. Sobald das Programm verantwortlich ist, verursacht es natürlich viele Probleme sowohl bei der Entwicklung als auch bei der Wartung.

Das Flask-Framework zwingt Projekte nicht dazu, eine bestimmte Organisationsstruktur zu verwenden, daher ist die hier verwendete Organisationsstruktur nicht unbedingt dieselbe wie in anderen Projekten.

Gemäß dem Code in default.py kann es grob in drei Kategorien unterteilt werden: Formularmodell, Datenmodell und Ansichtsmethode, sodass Modelle auch dadurch unterschieden werden Kategorie. Daher ist nach den Erfahrungen aus anderen Sprachen (Java) jede Klasse eine Py-Datei und wird im entsprechenden Ordner abgelegt

In einer einzigen Datei, Alle Konfigurationen werden alle in eine einzige Datei geschrieben, und nach der Rekonstruktion mehrerer Dateien ist dies offensichtlich unangemessen, daher ist es notwendig, eine unabhängige Konfigurationsdatei zu erstellen:

class Config:
 SECRET_KEY="Niu_blog String"
 SQLALCHEMY_DATABASE_URI='mysql://root:1234@localhost/cblog'
 SQLALCHEMY_COMMIT_ON_TEARDOWN=True
 LOGIN_PROTECTION="strong"
 LOGIN_VIEW="login"
Nach dem Login kopieren

Dann initialisieren Sie die Datei (App /__init__.py):

from flask import Flask
from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
import pymysql
pymysql.install_as_MySQLdb()
from config import Config

bootstrap = Bootstrap()
db = SQLAlchemy()
login_manager=LoginManager();

def create_app():
 app = Flask(__name__)
 app.config.from_object(Config)
 bootstrap.init_app(app)
 login_manager.init_app(app)
 login_manager.session_protection=Config.LOGIN_PROTECTION
 login_manager.login_view=Config.LOGIN_VIEW
 db.init_app(app)
 return app
Nach dem Login kopieren

Eine weitere Modularisierung erfordert die Verwendung von Blueprints. Die Funktionen von Blueprints ähneln in gewisser Weise den Bereichen in asp.net mvc und integrieren die Ansichtsmethoden verschiedener Module URL, zuerst wird der Eingang, also die Indexseite, als Hauptblaupause definiert. Die Methode ist wie folgt:

  • Erstellen Sie den Hauptordner

  • Erstellen Sie einen neuen Ordner in der Blueprint-Initialisierungsdatei __init__.py

  • Ansichtsmethodendatei view.py erstellen

  • Fehlerseitenansichtsmethode erstellen Fehler.py< im Hauptentwurf 🎜>

Der Code der Initialisierungsdatei lautet wie folgt:

from flask import Blueprint

main=Blueprint("main",__name__) # 创建蓝本
from . import errors,views
Nach dem Login kopieren
Derzeit verfügt die Ansichtsmethodendatei nur über eine Indexmethode , der Code lautet wie folgt:

from flask import render_template
from . import main

@main.route("/")
def index():
 return render_template("index.html",site_name=&#39;myblog&#39;)
Nach dem Login kopieren
Der Fehlerseitencode wird abgekürzt als

Die URL des Haupt-Blueprints verwendet nicht das Präfix

Dann die Anmeldung , Registrierungs- und Abmeldeseiten sind im Berechtigungs-Blueprint (Authentifizierung) konzentriert. Der Berechtigungs-Blueprint-Initialisierungscode lautet wie folgt:

from flask import Blueprint

auth=Blueprint("auth",__name__)
from . import views
Nach dem Login kopieren
Die Ansicht wird hauptsächlich aus der zuvor abgeschlossenen Ansicht migriert:

from . import auth
from .. import db,login_manager
from ..forms.LoginForm import LoginForm(*)
from ..models.User import User (*)
from flask_login import login_user,logout_user
from flask import render_template,flash,redirect,url_for

@auth.route("/login",methods=["GET","POST"])
def login():
 form = LoginForm()
 print(url_for("main.index"))
 if form.validate_on_submit():
  username = form.username.data
  password = form.password.data
  print(User)
  user = User.query.filter_by(username=username, password=password).first()
  if user is not None:
   login_user(user, form.remember_me.data)
   print(url_for("main.index"))
   return redirect(url_for("main.index"))
  else:
   flash("您输入的用户名或密码错误")
   return render_template("/auth/login.html", form=form) # 返回的仍为登录页
  return redirect(url_for("main.index"))
 return render_template("/auth/login.html",form=form)

@auth.route("/logout",methods=["GET","POST"])
def logout():
 logout_user()
 return redirect(url_for("main.index"))

@login_manager.user_loader
def load_user(user_id):
 return User.query.get(int(user_id))
Nach dem Login kopieren
Achten Sie auf die beiden mit einem Sternchen markierten Zeilen. Achten Sie unbedingt auf die py-Datei und das py-Objekt. Das Objekt muss in die Datei importiert werden.

Der Code in der LoginForm-Datei lautet wie folgt :

from flask_wtf import FlaskForm
from wtforms import StringField,PasswordField,SubmitField,BooleanField
from wtforms.validators import DataRequired

class LoginForm(FlaskForm):
 username=StringField("请输入用户名",validators=[DataRequired()])
 password=PasswordField("请输入密码")
 remember_me=BooleanField("记住我")
 submit=SubmitField("登录")
Nach dem Login kopieren
Der Code in der Benutzerdatei lautet wie folgt:

from flask_login import UserMixin
from .. import db

class User(UserMixin,db.Model):
 __tablename__="users"
 id=db.Column(db.Integer,primary_key=True)
 username=db.Column(db.String(50),unique=True,index=True)
 password=db.Column(db.String(50))
 nickname=db.Column(db.String(50))
 email=db.Column(db.String(100))
 birthday=db.Column(db.DateTime)
 gender=db.Column(db.Integer)
 remark=db.Column(db.String(200))
 role_id=db.Column(db.Integer,db.ForeignKey("roles.id"))
Nach dem Login kopieren
Beachten Sie, dass das Flask-Plug-In von flask.ext importiert wird.* Wechseln Sie zur Methode flask_* Von der neuen Version empfohlen. Ich möchte mich bei meinem Bloggerkollegen Zhi Dian Xiaobaicai für die Erinnerung bedanken.

Natürlich muss der Blueprint am Ende registriert werden, daher lautet der endgültige Code der Methode create_app:

def create_app():
 app = Flask(__name__)
 app.config.from_object(Config)
 bootstrap.init_app(app)
 login_manager.init_app(app)
 login_manager.session_protection=Config.LOGIN_PROTECTION
 login_manager.login_view=Config.LOGIN_VIEW
 db.init_app(app)
 from .main import main as main_blueprint
 from .auth import auth as auth_blueprint
 app.register_blueprint(main_blueprint)     #无url前缀
 app.register_blueprint(auth_blueprint,url_prefix="/auth") #url前缀为/auth
 return app
Nach dem Login kopieren
Die letzte Änderung ist die Möglichkeit, den Vorgang zu starten, eine zu erstellen Neue Datei „manager.py“ und Konfiguration. Der Startcode lautet wie folgt:

from app import create_app, db
from flask_script import Manager,Shell
from flask_migrate import Migrate,MigrateCommand
from app.models.User import User
from app.models.Role import Role
import pymysql
pymysql.install_as_MySQLdb()
app=create_app()
manager=Manager(app);
migrate = Migrate(app, db)
def make_shell_context():
 return dict(app=app,db=db,User=User,Role=Role) #注册shell命令
manager.add_command("db", MigrateCommand) #新增db命令用于数据库迁移
manager.add_command("shell" ,Shell(make_context=make_shell_context()))

if __name__ ==&#39;__main__&#39;:
 manager.run()
Nach dem Login kopieren
Verwenden Sie die einfachste Art, ihn auszuführen. Das Ergebnis ist das gleiche wie bei der Verwendung von „default.py“. Das Systemverzeichnis lautet derzeit nur zu Referenzzwecken wie folgt:

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Anpassung der Organisationsstruktur (Python). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie einfache und benutzerfreundliche Webanwendungen mit React und Flask So erstellen Sie einfache und benutzerfreundliche Webanwendungen mit React und Flask Sep 27, 2023 am 11:09 AM

So erstellen Sie mit React und Flask einfache und benutzerfreundliche Webanwendungen. Einführung: Mit der Entwicklung des Internets werden die Anforderungen an Webanwendungen immer vielfältiger und komplexer. Um den Anforderungen der Benutzer an Benutzerfreundlichkeit und Leistung gerecht zu werden, wird es immer wichtiger, moderne Technologie-Stacks zum Aufbau von Netzwerkanwendungen zu verwenden. React und Flask sind zwei sehr beliebte Frameworks für die Front-End- und Back-End-Entwicklung, und sie arbeiten gut zusammen, um einfache und benutzerfreundliche Webanwendungen zu erstellen. In diesem Artikel erfahren Sie, wie Sie React und Flask nutzen

Django vs. Flask: Eine vergleichende Analyse von Python-Web-Frameworks Django vs. Flask: Eine vergleichende Analyse von Python-Web-Frameworks Jan 19, 2024 am 08:36 AM

Django und Flask sind beide führend bei Python-Web-Frameworks und haben beide ihre eigenen Vorteile und anwendbaren Szenarien. In diesem Artikel wird eine vergleichende Analyse dieser beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. Entwicklungseinführung Django ist ein Web-Framework mit vollem Funktionsumfang, dessen Hauptzweck darin besteht, schnell komplexe Webanwendungen zu entwickeln. Django bietet viele integrierte Funktionen wie ORM (Object Relational Mapping), Formulare, Authentifizierung, Verwaltungs-Backend usw. Diese Funktionen ermöglichen es Django, große Mengen zu verarbeiten

Beginnen Sie bei Null und führen Sie Schritt für Schritt durch die Installation von Flask und die schnelle Einrichtung eines persönlichen Blogs Beginnen Sie bei Null und führen Sie Schritt für Schritt durch die Installation von Flask und die schnelle Einrichtung eines persönlichen Blogs Feb 19, 2024 pm 04:01 PM

Von Grund auf werde ich Ihnen Schritt für Schritt beibringen, wie Sie Flask installieren und schnell einen persönlichen Blog erstellen. Als Person, die gerne schreibt, ist es sehr wichtig, einen persönlichen Blog zu haben. Als leichtes Python-Web-Framework kann Flask uns dabei helfen, schnell ein einfaches und voll funktionsfähiges persönliches Blog zu erstellen. In diesem Artikel fange ich bei Null an und zeige Ihnen Schritt für Schritt, wie Sie Flask installieren und schnell einen persönlichen Blog erstellen. Schritt 1: Python und pip installieren Bevor wir beginnen, müssen wir zuerst Python und pi installieren

Anleitung zur Installation des Flask-Frameworks: Detaillierte Schritte, die Ihnen bei der korrekten Installation von Flask helfen Anleitung zur Installation des Flask-Frameworks: Detaillierte Schritte, die Ihnen bei der korrekten Installation von Flask helfen Feb 18, 2024 pm 10:51 PM

Tutorial zur Installation des Flask-Frameworks: Bringen Sie Ihnen Schritt für Schritt bei, wie Sie das Flask-Framework korrekt installieren. Einführung: Flask ist ein einfaches und flexibles Python-Webentwicklungs-Framework. Es ist leicht zu erlernen, benutzerfreundlich und voller leistungsstarker Funktionen. Dieser Artikel führt Sie Schritt für Schritt durch die korrekte Installation des Flask-Frameworks und stellt detaillierte Codebeispiele als Referenz bereit. Schritt 1: Python installieren Bevor Sie das Flask-Framework installieren, müssen Sie zunächst sicherstellen, dass Python auf Ihrem Computer installiert ist. Sie können bei P beginnen

Integration von Flask und Intellij IDEA: Tipps zur Entwicklung von Python-Webanwendungen (Teil 2) Integration von Flask und Intellij IDEA: Tipps zur Entwicklung von Python-Webanwendungen (Teil 2) Jun 17, 2023 pm 01:58 PM

Im ersten Teil werden die grundlegende Flask- und Intellij IDEA-Integration, Projekt- und virtuelle Umgebungseinstellungen, Abhängigkeitsinstallation usw. vorgestellt. Als Nächstes werden wir weitere Tipps zur Entwicklung von Python-Webanwendungen untersuchen, um eine effizientere Arbeitsumgebung aufzubauen: Mit FlaskBlueprints können Sie Ihren Anwendungscode für eine einfachere Verwaltung und Wartung organisieren. Blueprint ist ein Python-Modul, das Pakete erstellt

Flask vs. FastAPI: Die beste Wahl für eine effiziente Web-API-Entwicklung Flask vs. FastAPI: Die beste Wahl für eine effiziente Web-API-Entwicklung Sep 27, 2023 pm 09:01 PM

FlaskvsFastAPI: Die beste Wahl für eine effiziente Entwicklung von WebAPI Einführung: In der modernen Softwareentwicklung ist WebAPI zu einem unverzichtbaren Bestandteil geworden. Sie stellen Daten und Dienste bereit, die die Kommunikation und Interoperabilität zwischen verschiedenen Anwendungen ermöglichen. Bei der Auswahl eines Frameworks für die Entwicklung von WebAPI haben Flask und FastAPI große Aufmerksamkeit erregt. Beide Frameworks erfreuen sich großer Beliebtheit und jedes hat seine eigenen Vorteile. In diesem Artikel werden wir uns Fl ansehen

Vergleich der Leistung von Gunicorn und uWSGI für die Bereitstellung von Flask-Anwendungen Vergleich der Leistung von Gunicorn und uWSGI für die Bereitstellung von Flask-Anwendungen Jan 17, 2024 am 08:52 AM

Flask-Anwendungsbereitstellung: Vergleich von Gunicorn und suWSGI Einführung: Flask ist als leichtes Python-Web-Framework bei vielen Entwicklern beliebt. Bei der Bereitstellung einer Flask-Anwendung in einer Produktionsumgebung ist die Auswahl der geeigneten Server Gateway Interface (SGI) eine entscheidende Entscheidung. Gunicorn und uWSGI sind zwei gängige SGI-Server. In diesem Artikel werden sie ausführlich beschrieben.

Erstellen Sie interaktive Webanwendungen zur Datenvisualisierung mit Flask und D3.js Erstellen Sie interaktive Webanwendungen zur Datenvisualisierung mit Flask und D3.js Jun 17, 2023 pm 09:00 PM

Datenanalyse und Datenvisualisierung sind in den letzten Jahren in vielen Branchen und Bereichen zu unverzichtbaren Fähigkeiten geworden. Für Datenanalysten und -forscher ist es sehr wichtig, den Benutzern große Datenmengen zu präsentieren und ihnen durch Visualisierung die Bedeutung und Eigenschaften der Daten verständlich zu machen. Um diesem Bedarf gerecht zu werden, ist es zu einem Trend geworden, D3.js zum Erstellen interaktiver Datenvisualisierungen in Webanwendungen zu verwenden. In diesem Artikel erfahren Sie, wie Sie mit Flask und D3.js interaktive Datenvisualisierungen für das Web erstellen

See all articles