Cha*_*ode 2 python mongodb flask
我无法理解为什么我的烧瓶应用程序会出现此错误:我已经尝试对其进行调试和研究。看起来我的蓝图应该很好。当我通过 wsgi.py 运行 init_app() 时,似乎在注册我的 auth_blueprint 时遇到问题,我不确定为什么。
Traceback (most recent call last):
File "F:\PROGRAMMING\pycharm_projects\home_inspection_website\Home_Inspection_Website\wsgi.py", line 4, in <module>
app = init_app()
File "F:\PROGRAMMING\pycharm_projects\home_inspection_website\Home_Inspection_Website\home_inspection_website_application\__init__.py", line 34, in init_app
app.register_blueprint(auth_blueprint)
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\flask\app.py", line 98, in wrapper_func
return f(self, *args, **kwargs)
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\flask\app.py", line 1168, in register_blueprint
blueprint.register(self, options, first_registration)
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\flask\blueprints.py", line 256, in register
deferred(state)
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\flask\blueprints.py", line 294, in <lambda>
self.record(lambda s: s.add_url_rule(rule, endpoint, view_func, **options))
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\flask\blueprints.py", line 81, in add_url_rule
self.app.add_url_rule(
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\flask\app.py", line 98, in wrapper_func
return f(self, *args, **kwargs)
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\flask\app.py", line 1278, in add_url_rule
self.url_map.add(rule)
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\werkzeug\routing.py", line 1482, in add
rule.bind(self)
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\werkzeug\routing.py", line 767, in bind
self.compile()
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\werkzeug\routing.py", line 836, in compile
_build_regex(self.rule if self.is_leaf else self.rule.rstrip("/"))
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\werkzeug\routing.py", line 825, in _build_regex
convobj = self.get_converter(variable, converter, c_args, c_kwargs)
File "C:\Users\cbbgo\.virtualenvs\Home_Inspection_Website-gpy8md-i\lib\site-packages\werkzeug\routing.py", line 775, in get_converter
raise LookupError("the converter %r does not exist" % converter_name)
LookupError: the converter 'str' does not exist
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
from flask import Flask
from extensions import asset, mongo, login_manager, csrf, bcr
from sessions.mongo_sessions import MongoSessionInterface
def init_app():
"""Initialize the core application."""
app = Flask(__name__, instance_relative_config=False)
app.config.from_object('config.DevConfig')
# app.config.from_object('config.ProdConfig')
# Initialize Plugins
asset.init_app(app)
bcr.init_app(app)
mongo.init_app(app)
login_manager.init_app(app)
csrf.init_app(app)
with app.app_context():
from assets import compile_static_assets
# Include our Routes
from auth import auth_blueprint
from errors import errors_blueprint
from inspection_home import inspection_home_blueprint
from main import main_blueprint
app.session_interface = MongoSessionInterface(db='home_inspection')
# Register Blueprints
app.register_blueprint(main_blueprint, url_prefix="/main")
app.register_blueprint(inspection_home_blueprint, url_prefix="/inspection_home")
app.register_blueprint(auth_blueprint)
app.register_blueprint(errors_blueprint)
# Create static asset bundles
compile_static_assets(app)
return app
Run Code Online (Sandbox Code Playgroud)
from flask import Blueprint, redirect, render_template, flash, request, url_for
from flask_login import login_required, logout_user, current_user, login_user
from forms import LoginForm
from models import User
from extensions import login_manager, mongo
import models.errors as user_errors
# Blueprint Configuration
auth_blueprint = Blueprint(
'auth',
__name__,
template_folder='views',
static_folder='static'
)
@auth_blueprint.route('/login', methods=['GET', 'POST'])
def login():
if current_user.is_authenticated:
return redirect(url_for('inspection_home.dashboard'))
form = LoginForm()
if form.validate_on_submit():
try:
if User.login_valid(email=form.email.data, password=form.password.data):
login_user(User)
next_page = request.args.get('next')
return redirect(next_page or url_for('auth.login_successful'))
except user_errors.UserError as e:
return e.message
return redirect(url_for('auth.login'))
return render_template(
'auth.login',
form=form,
title='Log in',
template='login-page',
body='Log in with your User account.'
)
@login_manager.user_loader
def load_user(_id):
"""Check if user is logged-in on every page load."""
u = mongo.db.Users.find_one({"_id": _id})
if not u:
return None
return User(name=u['Name'],
email=u['Email'],
password=u['Password']
)
@login_manager.unauthorized_handler
def unauthorized():
"""Redirect unauthorized users to Login page."""
flash('You must be logged in to view that page.')
return redirect(url_for('auth.login'))
@auth_blueprint.route('/logout')
@login_required
def logout():
logout_user()
return redirect(url_for('main.home'))
@auth_blueprint.route('/login_successful/<str:name>')
def login_successful(name):
return render_template('login_navigation/auth/login_successful.html')
Run Code Online (Sandbox Code Playgroud)
小智 5
在
\n@auth_blueprint.route('/login_successful/<str:name>')\ndef login_successful(name):\n return render_template('login_navigation/auth/login_successful.html')\nRun Code Online (Sandbox Code Playgroud)\nFlask\xe2\x80\x99s 字符串的内置 URL 转换器是string, 不是str
| 归档时间: |
|
| 查看次数: |
1222 次 |
| 最近记录: |