繁体   English   中英

来自其他文件的Flask路由器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM