我是 Flask 的初學者,我創建了一個具有 MVC 結構的專案
- 代碼 :
.
├── app
│. │── main.py
│ ├── controllers
│ │ ├── dbscan.py
│ │ ├── home.py
│ │ └── kmeans.py
│ ├── models
│ │ ├── dbscan.py
│ │ └── kmeans.py
│ ├── static
│ │ └── XXXX
│ └── views
│ └── XXXX
└── main.py
檔案 main.py
from flask import Flask
app = Flask(
__name__,
template_folder='app/views',
static_folder='app/static'
)
if __name__ == "__main__":
app.run(debug=True)
檔案 home.py
from flask import render_template
@app.route("/")
def home():
return render_template('home.html')
- 問題 :
我已經明白了這個問題,但我不知道如何解決它...
controllers檔案和檔案之間沒有鏈接main.py
那么,如何鏈接controllers檔案夾中存在的所有路由main.py?
- 更新 :
home.py
from flask import Blueprint, render_template
home_hdl = Blueprint('home_hdl', __name__, template_folder='views')
@home_hdl.route("/")
def home():
return render_template('home.html')
main.py
from flask import Flask
from app.controllers.home import home_hdl
app = Flask(
__name__,
template_folder='app/views',
static_folder='app/static'
)
app.register_blueprint(home_hdl)
if __name__ == "__main__":
app.run(debug=True)
檔案夾
.
├── app
│ ├── controllers
│ │ ├── __init__.py
│ │ ├── dbscan.py
│ │ ├── home.py
│ │ └── kmeans.py
│ ├── main.py
│ ├── models
│ │ └── XXXX
│ ├── static
│ │ └── XXXX
│ └── views
│ └── XXXX
└── XXXX
uj5u.com熱心網友回復:
嘗試這個
在控制器檔案夾(將處理路由的檔案)下的每個檔案中定義一個處理程式。
例如,對于
dbscan.py,你可以有
from flask import Blueprint
dbscan_handlers = Blueprint('dbscan_handlers', __name__, template_folder='views')
# Your routes (in the dbscan.py file) will then be something like this
@dbscan_handlers.route('/xyz/'):
.....
@dbscan_handlers.route('/def/'):
....
- 然后你注冊處理程式
main.py
from controllers.dbscan import dbscan_handlers
app.register_blueprint(dbscan_handlers)
請注意,要做到這一點
from controllers.abc import xyz,您需要__init.py__在控制器中有一個檔案。該檔案可以為空。當有人訪問您的應用程式時,它將轉到 main.py 并且如果路由是 pattern
/xyz/,它將由 dbscan.py 檔案處理
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/334871.html
上一篇:werkzeug.routing.BuildError:無法為值為['next']的端點“login”構建url。您的意思是“core.login”嗎?
