[英]Flask router from other file
我现在正在构建Flask应用程序,如下所示。
myserver
- server.py
- myapp
-- urls.py
-- models.py
-- views.py
-- consts.py
我的代码在这里。
server.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# Flask App
application = Flask(__name__)
# SQLAlchemy
application.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:./local.db"
db = SQLAlchemy(application)
if __name__ == "__main__":
application.run(debug=True)
urls.py
from server import application
from . import views
@application.route('/')
def version():
return views.version()
但是当我运行server.py并打开http:// localhost:5000 / server说404 Not Found
。
所以我搜索了stackoverflow,我找到了一些关于Blueprint
描述。 我制作了app app = Blueprint('app', __name__)
AttributeError: module 'urls' has no attribute 'app'
如何在其他文件中定义url路由器?
这里有Blueprint
例子。 文件结构:
/project_folder
server.py
urls.py
urls2.py
server.py:
from flask import Flask
from urls import urls_blueprint
from urls2 import urls2_blueprint
app = Flask(__name__)
# register routes from urls
app.register_blueprint(urls_blueprint)
# we can register routes with specific prefix
app.register_blueprint(urls2_blueprint, url_prefix='/urls2')
if __name__ == "__main__":
app.run(debug=True)
urls.py:
from flask import Blueprint
urls_blueprint = Blueprint('urls', __name__,)
@urls_blueprint.route('/')
def index():
return 'urls index route'
urls2.py:
from flask import Blueprint
urls2_blueprint = Blueprint('urls2', __name__,)
@urls2_blueprint.route('/')
def index():
return 'urls2 index route'
运行服务器并打开http://localhost:5000/
和http://localhost:5000/urls2/
。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.