Python 从其他文件删除路由器
我现在构建的应用程序如下所示Python 从其他文件删除路由器,python,flask,routes,attributeerror,Python,Flask,Routes,Attributeerror,我现在构建的应用程序如下所示 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.confi
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)
from server import application
from . import views
@application.route('/')
def version():
return views.version()
url.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)
from server import application
from . import views
@application.route('/')
def version():
return views.version()
但当我运行server.py并打开服务器时,服务器会显示404notfound
所以我搜索了stackoverflow,找到了一些关于Blueprint
的描述。我将blueprint命名为app,比如app=blueprint('app',name.\uuuu)
,并从server.py注册它,但我得到了AttributeError:module'url'没有属性'app'
如何在其他文件中定义url路由器?这里是带有
蓝图的示例。文件结构:
/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)
URL.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/
希望这有帮助。您正在调用“app”,但python不知道什么是“app”。您是否忘记为“应用程序”添加导入?你能发布更新的代码吗?@FuzzyAmi我也从myapp导入URL和注册blueprint URL在server.py
中添加了这一行。appMy问题与blueprint无关,但感谢您的回答:)