json - 烧瓶在返回 jsonify 之前挂起((无输出错误))
问题描述
我是新开发人员,我创建了一个页面来检查用户是否已登录负载,如果他是,则将登录表单替换为来自服务器的其他数据
另一方面,如果不是,它会显示登录表单并等待用户单击登录以触发另一个 ajax 来验证和提取用户信息并返回 Json 对象。
问题发生在返回行之前 - 我追溯了打印和登录 js 的问题,在返回 jsonify 行之前一切正常
奇怪的部分是它永远不会引发任何错误它只是挂起
def clogin():
print(f"\n login activated \n")
if request.method == "POST":
loginName = request.form.get("memberNameid")
loginPw = request.form.get("passwordloginid")
#session['user'] = loginName
f = Users.query.filter_by(email=loginName).first()
login_user(f)
session['user'] = f
print(f"I have receved this from AJAX ... \n \n loginName = {loginName} \n loginPw = {loginPw} \n current_user = {current_user} \n current_user.id = {current_user.id} \n current_user.name = {current_user}")
print(f"f.email = {f.email} \n f.pw = {f.password}")
if f:
qdisplayname = f.name
print("qdisplayname = ",qdisplayname)
if f.email == loginName: #and sha256_crypt.verify(loginPw,f.qpw):
if f.pos == "pos2":
print("pos : pos 2 was picked ")
return jsonify({"Success": True , "Msg":" lets try to get jinja to work - email {{ current_user.email }} " , "position" : "Pharmacist" , "displayname":current_user.name })
这是 CMD 输出:
登录激活
我从 AJAX 收到了这个...
loginName = qwe@qwe.qwe
loginPw = qwe
current_user = <Users 1>
current_user.id = 1
current_user.name = <Users 1>
f.email = qwe@qwe.qwe
f.pw = qwe
qdisplayname = name2
pos : pos 2 was picked
如果您知道是什么让烧瓶像这样挂起,请告诉我?我什至无法刷新或导航到其他页面我必须关闭服务器
解决方案
我最终flask_login
继续处理登录请求。
登录功能变成了如下:
@app.route("/login", methods=['GET', 'POST'])
def login():
login_form = LoginForm()
# Allow login if validation success
if login_form.validate_on_submit():
x = users.query.filter_by(username=login_form.username.data).first()
login_user(x)
db.session.commit()
return redirect(url_for('index'))
return render_template("login.html", form=login_form)
推荐阅读
- angular - 在 Angular 中维护同一组件的多个状态
- c# - C# Swagger 生成具有域身份验证的客户端
- python - 如何杀死另一个脚本运行的脚本
- java - git log --follow 包括错误的提交
- python - SQLite/Python 变量名和列名相同的问题
- r - 这是对数据框进行排序以在 ANOVA (aov) 中获得合理结果的正确方法吗?
- c - 为什么这段代码没有给出任何输出,也没有执行终止?
- python - 在python的函数中将windows路径转换为pathlib.WindowsPath()
- angular - 在父组件中显示子组件
- angularjs - 在 ASP.NET Core MVC 视图中渲染 AngularJs index.html