最近有一些同學問了我一些項目結構的問題 所以今天給大家專門講解 解耦后的項目 目錄我會分為兩種方式:一種是普通解耦 一種是多mvc解耦
首先 我沒先建立我們程序的文件夾並且在這個文件夾內寫一個和這個文件夾一樣的文件夾 然后再建立啟動主文件manage.py
然后在內部的和主文件夾一樣的文件夾內再建立一個__init__.py文件這個文件是你的生成app和app調用的所有主內容
__init__.py
from flask import Flask from config import set1 # 導入配置文件 def create_app(): app = Flask(__name__) # 導入配置文件 app.config.from_object("config.set1") #接收配置配置文件 app.logger.error(set1.dict) #導入藍圖 from biaozhun.views.comment import ac from biaozhun.views.user import user app.register_blueprint(ac) app.register_blueprint(user) return app
然后在你的manage.py文件內是你的啟動文件
manage.py
from biaozhun import create_app app =create_app() if __name__ == "__main__": app.run("127.0.0.1",9980,debug = True)
其中的內部文件夾的目錄是templates必須是這個名字這個存放的是你的前端界面
我們把每一個模塊都放在藍圖中去實現 這個時候就用到了views,然后我沒把路由分配也交給了藍圖去實現
這個里面的views的user和comment也是藍圖
user.py
from flask import Blueprint,render_template user = Blueprint("user",__name__) #生成藍圖對象 @user.route("/user_list") #使用藍圖對象來分發路由 def show_user(): return render_template("user_list.html")
comment.py
from flask import Blueprint from config import set1 # 導入配置文件 ac = Blueprint("account",__name__) @ac.route("/login") def login(): return "登陸%s"%str(set1.dict)
然后我沒的config是我沒的配置文件有的人也喜歡叫settings都可以的
配置文件就和以前的使用是一樣的了
還有另一種的存放:
Flask做項目文件的時候也是需要注意很多的
在啟動文文件的時候我沒可以直接啟動也可以通過命令,這個時候就需要用到一個第三方的工具包,flask_script
我沒可以把實例化的app封裝到flask_script中的manage中 然后 通過這個來制定啟動server
application.py文件
from flask import Flask from flask_script import Manager #導入manage from flask_sqlalchemy import SQLAlchemy import os class Application(Flask): def __init__(self,import_name): super(Application,self).__init__(import_name) self.config.from_pyfile('config/base_setting.py')#導入配置文件 if "ops_config" in os.environ: # os.environ是找到你的配置文夾中對應的配置文件 self.config.from_pyfile("config/%s_setting.py"%os.environ['ops_config']) db.init_app(self) db = SQLAlchemy() app = Application(__name__) manage = Manager(app) #把app進行封裝
manage.py文件
from application import app,manage from flask_script import Server #自定義啟動服務命令 linux通過這個自定義 但是修改完成后就要要手動運行 python manage.py runserver才可以執行文件 import www manage.add_command("runserver",Server(host = "127.0.0.1",port = 9980,use_debugger=True)) #指定啟動的服務和端口 def main(): # app.run("127.0.0.1",9980,debug=True) manage.run() if __name__ == "__main__": try: import sys sys.exit(main()) except Exception as e: import traceback #通過traceback可以把所有的錯誤的信息給打印出來 traceback.print_exc()
自定義啟動服務命令 linux通過這個自定義 但是修改完成后就要要手動運行 python manage.py runserver才可以執行文件
如果把app封裝到manage中之后再啟動服務就需要執行
python manage.py runserver