Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将破折号整合到烧瓶中_Python_Flask_Plotly Dash_Flask Login - Fatal编程技术网

Python 将破折号整合到烧瓶中

Python 将破折号整合到烧瓶中,python,flask,plotly-dash,flask-login,Python,Flask,Plotly Dash,Flask Login,我正在尝试使用Flask登录将Dash应用程序集成到现有的Flask程序中。如果我在Dash实例中添加server=server,除了运行中指定的路由(即/home、/login)之外的所有路由(即使不存在!!!),请将我带到Dash应用程序 例如: localhost:500/-带我去Dash应用程序 本地主机:5000/家-带我回家的路线 localhost:5000/da-带我去Dash应用程序 如果我从Dash实例中删除server=server,则所有路径都可以正常工作,但当我在loc

我正在尝试使用Flask登录将Dash应用程序集成到现有的Flask程序中。如果我在Dash实例中添加
server=server
,除了运行中指定的路由(即/home、/login)之外的所有路由(即使不存在!!!),请将我带到Dash应用程序

例如:

localhost:500/-带我去Dash应用程序

本地主机:5000/家-带我回家的路线

localhost:5000/da-带我去Dash应用程序

如果我从Dash实例中删除
server=server
,则所有路径都可以正常工作,但当我在localhost:5000/test上启动仪表板时,会出现错误“错误加载布局”

如果我将
url\u base\u pathname='/base/'
添加到dash实例中,路由将正常工作,但仪表板将绕过我的登录

代码文件:

server.py:

from flask import Flask

server = Flask(__name__,instance_relative_config=False)

server.config['SECRET_KEY'] = 'secretkey'
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user
from server import server
from dashboard import app as app_1
from werkzeug.middleware.dispatcher import DispatcherMiddleware
from werkzeug.serving import run_simple

server.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///login.db'

db = SQLAlchemy(server)
login_manager = LoginManager()
login_manager.init_app(server)

class User(UserMixin,db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(30), unique=True)
    password = db.Column(db.String(30))

@login_manager.user_loader
def load_user(user_id):
    return User.query.get(int(user_id))

@server.route('/login')
def login():
    return render_template('login.html')

@server.route('/homepage', methods=['POST'])
def homepage():
    username = request.form['username']
    password = request.form['password']

    user = User.query.filter_by(username=username,password=password).first()

    if not user:
        return 'User not Found'

    else:
        login_user(user)
        return render_template('homepage.html')

@server.route('/logout')
def logout():
    logout_user()
    return index()


@server.route('/')
@server.route('/home')
def index():
    return render_template('index.html')

@server.route('/test')
@login_required
def dashboard():    
    return redirect('/dash1')


app = DispatcherMiddleware(server, {
    '/dash1': app_1.server})

if __name__ == '__main__':
    run_simple('0.0.0.0', 5000, app, use_reloader=True, use_debugger=True)
run.py:

from flask import Flask

server = Flask(__name__,instance_relative_config=False)

server.config['SECRET_KEY'] = 'secretkey'
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user
from server import server
from dashboard import app as app_1
from werkzeug.middleware.dispatcher import DispatcherMiddleware
from werkzeug.serving import run_simple

server.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///login.db'

db = SQLAlchemy(server)
login_manager = LoginManager()
login_manager.init_app(server)

class User(UserMixin,db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(30), unique=True)
    password = db.Column(db.String(30))

@login_manager.user_loader
def load_user(user_id):
    return User.query.get(int(user_id))

@server.route('/login')
def login():
    return render_template('login.html')

@server.route('/homepage', methods=['POST'])
def homepage():
    username = request.form['username']
    password = request.form['password']

    user = User.query.filter_by(username=username,password=password).first()

    if not user:
        return 'User not Found'

    else:
        login_user(user)
        return render_template('homepage.html')

@server.route('/logout')
def logout():
    logout_user()
    return index()


@server.route('/')
@server.route('/home')
def index():
    return render_template('index.html')

@server.route('/test')
@login_required
def dashboard():    
    return redirect('/dash1')


app = DispatcherMiddleware(server, {
    '/dash1': app_1.server})

if __name__ == '__main__':
    run_simple('0.0.0.0', 5000, app, use_reloader=True, use_debugger=True)
dashboard.py

import dash
import dash_html_components as html
from server import server

app = dash.Dash(__name__)

app.layout = html.Div('Dashboard Page')
如果您能对此有所了解,我将不胜感激。在过去的两天里,我一直在搜索互联网,但无法解决这个问题。最终,最好的解决方案是,如果我能弄清楚为什么在删除
server=server
时会出现布局错误,因为整个应用程序的功能不同于此


谢谢

您好,您是否查看了官方教程[。我一直在关注这一点,它起到了作用。我猜您需要
请求\u路径名\u前缀
。但是您的身份验证可能不起作用。我已经尝试过,但它仍然无法与身份验证一起正常工作。您好,您是否查看了官方教程[.我一直在关注这一点,它起到了作用。我想您可能需要
请求\u路径名\u前缀
。但是您的身份验证可能不起作用。我已经尝试过了,但它仍然不能与身份验证一起正常工作。