关于注册问题
{% extends 'base.html' %}
{% block title %}{ { super() } }-注册{% endblock %}
<% block header %>
<link rel="stylesheet" href="./assets/style/login.css">
<link rel="stylesheet" href="//at.alicdn.com/t/font_1658093_nokjvsp8hws.css">
<% endblock %>
{% block layout %}
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
{# 展示flash #}
{% include 'components/flash_message.html' %}
<div class="login-header">
<h2 class="title text-center">在线问答系统-注册</h2>
<div class="slogan text-center">有问题 上问答</div>
</div>
<!-- 表单登录 -->
<form class="login-form box-wrap" method="POST"
action="{{ url_for('accounts.register') }}">
{{ form.csrf_token }}
<div class="form-group">
<label for="id-user-name">用户名</label>
{{ form.username }}
</div>
<div class="form-group">
<label for="id-nick-name">昵称</label>
{{ form.nickname }}
</div>
<div class="form-group">
<label for="id-password">密码</label>
{{ form.password }}
</div>
<div class="form-group">
<label for="id-confirm-password">确认密码</label>
{{ form. confirm_password}}
<div class="form-group">
<button type="submit" class="btn btn-info btn-block btn-lg">注册</button>
</div>
<p class="desc">未注册手机验证后自动登录<br/>
注册即代表同意《用户使用协议》《隐私保护指引》</p>
<p class="text-right">已有账号,<a href="{{ url_for('accounts.login') }}">点击登录</a></p>
</form>
<!-- //表单登录 -->
<!-- 社交账号登录 -->
<div class="login-social box-wrap">
<span>社交账号登录</span>
<div class="right">
<span><i class="iconfont icon-wechat"></i>微信</span>
<span><i class="iconfont icon-qq"></i>QQ</span>
<span><i class="iconfont icon-weibo"></i>微博</span>
</div>
</div>
<!-- //社交账号登录 -->
<!-- 页脚 -->
<div class="login-footer">
<a href="">关于我们</a>
<a href="">联系我们</a>
<a href="">注册机构</a>
<a href="">专栏</a>
<br>
<a href="">京ICP 备1000000012号</a>
</div>
</div>
</div>
</div>
{% endblock %}{# flash 消息 #}
<!-- 消息通知区域 -->
{% for category, message in get_flashed_messages(with_categories=true) %}
<div class="alert alert-{{ category }} alert-dismissible fade in" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span
aria-hidden="true">×</span></button>
{% autoescape false %}
<span>{{ message }}</span>
{% endautoescape %}
</div>
{% endfor %}from flask import Blueprint, render_template, flash, redirect, url_for
from accounts.forms import RegisterForm
from models import User, db, UserProfile
accounts = Blueprint('accounts', __name__,
template_folder='templates',
static_folder='../assets')
@accounts.route('/login')
def login():
""" 登录页面 """
return render_template('login.html')
@accounts.route('/register', methods=['GET', 'POST'])
def register():
""" 注册 """
form = RegisterForm()
if form.validate_on_submit():
# 1. 获取表单信息
username = form.username.data
password = form.password.data
nickname = form.nickname.data
# 2. 添加到db.session
try:
user_obj = User(username=username, password=password, nickname=nickname)
db.seesion.add(user_obj)
profile = UserProfile(username=username, user=user_obj)
db.session.add(profile)
db.session.commit()
# 3.跳转到成功页面
flash('注册成功, 请登录', 'success')
return redirect(url_for('accounts.login'))
except Exception as e:
print(e)
flash('注册失败, 请稍后再试', 'danger')
return render_template('register.html', form=form)
@accounts.route('/mine')
def mine():
""" 个人中心 """
return render_template('mine.html')from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField
class RegisterForm(FlaskForm):
""" 用户注册 """
username = StringField(label='用户名', render_kw={
'class': 'form-control input-lg',
'placeholder': '请输入用户名'
})
nickname = StringField(label='用户昵称', render_kw={
'class': 'form-control input-lg',
'placeholder': '请输入用户昵称'
})
password = PasswordField(label='密码', render_kw={
'class': 'form-control input-lg',
'placeholder': '请输入密码'
})
confirm_password = PasswordField(label='确认密码', render_kw={
'class': 'form-control input-lg',
'placeholder': '请输入确认密码'
})添加上nickname实验报错信息显示,结果显示session


哪个步骤错了这是?对比了很多遍都没有发现
3
收起
正在回答 回答被采纳积分+1
1回答
qq_慕婉清1197770
2023-08-07 15:59:14
问题已解决
Python全能工程师
- 参与学习 人
- 提交作业 16415 份
- 解答问题 4469 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星