问题遇到的现象和发生背景
通过flask搭建网站,使用路由BluePrint类配置路由。
在本地上运行很顺利,但是放到服务器上后,由蓝图配置的路由都失效了,报错404,但是app.route配置的可以访问到。
问题相关代码
下面是app和一个蓝图类,其中blueprint配置__init__.py成一个模块:
## blueprint __init__.py
from .get_dbData_bp import bp as get_database_bp
from .upload_bp import bp as upload_page_bp
from .search_bp import bp as search_get_data_bp
from .line_chart import bp as line_chart_bp
from .personal_matter import bp as personal_migration_bp
from flask import Flask, redirect, send_from_directory, render_template
# from flask_migrate import Migrate
from blue_prints import get_database_bp, upload_page_bp, search_get_data_bp, line_chart_bp, personal_migration_bp
# from index import bp as show_bp
from models import db
import config
# from index import *
# 搞一个app
app = Flask(__name__)
# 配置项
app.config.from_object(config)
# 数据库初始化
db.init_app(app)
# migrate
# migrate = Migrate(app=app, db=db)
# 注册蓝图
app.register_blueprint(get_database_bp) # 【这些蓝图里面配置的路径都不管用了】
app.register_blueprint(upload_page_bp)
app.register_blueprint(search_get_data_bp)
app.register_blueprint(line_chart_bp)
app.register_blueprint(personal_migration_bp)
@app.route('/')
def hello_world(): # put application's code here
return redirect('/upload_single')
@app.route('/test') #【这里配置的正常】
def test():
return render_template('test.html')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8888, debug=True)
# 这个是其中一个蓝图
from flask import Blueprint, request, jsonify, render_template
bp = Blueprint("upload", __name__, url_prefix='/')
# 这个是界面路由
@bp.route('/upload_single')
def upload_single():
return 'hello'