日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Flask笔记-构建mvc分层结构及优化

發布時間:2025/3/15 c/c++ 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask笔记-构建mvc分层结构及优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大體上的結構如下:

這里舉個例子:

程序運行截圖如下:

打印個

文件結構如下:

源碼如下:

account.py

from application import dbclass Account(db.Model):id = db.Column(db.Integer, primary_key = True)name = db.Column(db.String(50))password = db.Column(db.String(50))

user.py

# coding: utf-8 from application import dbclass User(db.Model):__tablename__ = 'user'Host = db.Column(db.String(60, 'utf8_bin'), primary_key=True, nullable=False, server_default=db.FetchedValue())User = db.Column(db.String(32, 'utf8_bin'), primary_key=True, nullable=False, server_default=db.FetchedValue())password_last_changed = db.Column(db.DateTime)password_lifetime = db.Column(db.SmallInteger)

base_setting.py

#公用配置 DEBUG = True SQLALCHEMY_ECHO = False SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_ENCODING = "utf8mb4" SECRET_KEY = "it1995123456"

local_setting.py

#本地開發配置文件 from config.base_setting import * #這樣的話就可以覆蓋配置了 SQLALCHEMY_TRACK_MODIFICATIONS = True SQLALCHEMY_DATABASE_URI = "mysql://root:XXXXXXXXXX@XXX.XXX.XXX.XXX/mytest" SECRET_KEY = "12345IT1995"

production_setting.py

#生產環境配置文件 from config.base_setting import * DEBUG = False

index.py

from flask import Blueprint,render_template from common.models.user import User from common.models.account import Account index_page = Blueprint( "index_page",__name__ )@index_page.route("/") def index():context = {}#result = User.query.all()result = Account.query.all()context['result'] = resultreturn render_template("index.html", **context)

Auth.py

from application import app@app.before_request def before_request():app.logger.info("----------before_request----------")return@app.after_request def after_request(response):app.logger.info("----------after_request----------")return response

errorHandler.py

from application import app@app.errorhandler(404) def error_404(e):return "404 not found"

layout.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>模版</title> </head> <body> {% block content %} {% endblock %} </body> </html>

index.html

{% extends "common/layout.html" %} {% block content %} <p> flask 查詢數據庫</p> <p>{% for item in result %}{{ item['id'] }} {{ item['name'] }} {{ item['password'] }}{% endfor %} </p> {% endblock %}

application.py

from flask import Flask from flask_script import Manager from flask_sqlalchemy import SQLAlchemy import osapp = Flask(__name__) manager = Manager(app)app.config.from_pyfile("config/base_setting.py") #ops_config=local|production #linux export ops_config=local|production #windows set ops_config=local|productionif "ops_config" in os.environ:app.config.from_pyfile("config/%s_setting.py" % (os.environ['ops_config']))db = SQLAlchemy(app)

manager.py

from application import app,manager from flask_script import Server,Command from www import *#web server manager.add_command("runserver", Server(host = "0.0.0.0", use_debugger = True, use_reloader = True ))#create_table @Command def create_all():from application import dbfrom common.models.user import Userdb.create_all()manager.add_command( "create_all",create_all )def main():manager.run()if __name__ == "__main__":try:import syssys.exit(main())except Exception as e:import tracebacktraceback.print_exc()

requirement.txt

flask flask-sqlalchemy mysqlclient flask-script flask_debugtoolbar

www.py

from application import app from controllers.index import index_page from flask_debugtoolbar import DebugToolbarExtensiontoolbar = DebugToolbarExtension(app)#攔截器和錯誤處理 from interceptors.Auth import * from interceptors.errorHandler import *app.register_blueprint(index_page, url_prefix = "/")

這樣的話就不可以用python manager.py來跑了。

從中可以看到。

create_all,就可以創建表了!

runserver是可以跑起來的,所以要這么跑

python manager.py runserver

?

總結

以上是生活随笔為你收集整理的Flask笔记-构建mvc分层结构及优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。