使用Flask实现用户登录和注册

该博客详细介绍了如何使用Flask框架实现用户注册和登录功能。通过创建注册表单、注册视图函数和相应的模板,实现了用户注册流程。目录结构清晰,包括了表单创建、视图函数配置以及蓝图的设置。最终,博主展示了实现后的注册和登录页面效果图。
摘要由CSDN通过智能技术生成

Flask实现的功能:

  • 建立用户注册表单
  • 添加用户注册视图函数
  • 用户注册模板

目录结构:

目录结构

1.建立用户注册和登录表单:

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, EqualTo, Email, ValidationError
from flask_wtf.file import FileField, FileAllowed, FileRequired
from app.models import User
from app.extensions import photos


# 用户注册表单
class RegisterForm(FlaskForm):
    username = StringField('用户名', validators=[DataRequired(message='用户名不能为空'), Length(6, 12, message='用户名只能在6~12个字符之间')])
    password = PasswordField('密码', validators=[DataRequired(message='密码不能为空'), Length(6, 20, message='密码只能在6~20个字符之间')])
    confirm = PasswordField('确认密码', validators=[EqualTo('password', message='两次密码不一致')])
    email = StringField('邮箱', validators=[Email(message=
  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Flask是一个轻量级的Python Web框架,功能强大且易于使用。可以使用Flask实现用户登录注册功能。 以下是一些关键步骤: 1. 创建Flask应用程序 ``` from flask import Flask app = Flask(__name__) ``` 2. 创建数据库模型 可以使用SQLAlchemy来创建模型。 ``` from flask_sqlalchemy import SQLAlchemy app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), unique=True, nullable=False) password = db.Column(db.String(50), nullable=False) ``` 3. 创建注册登录路由 ``` from flask import render_template, request, redirect, url_for, session @app.route('/register', methods=['GET', 'POST']) def register(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] user = User(username=username, password=password) db.session.add(user) db.session.commit() return redirect(url_for('login')) return render_template('register.html') @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] user = User.query.filter_by(username=username).first() if user and user.password == password: session['username'] = username return redirect(url_for('index')) else: return render_template('login.html', error='Invalid username/password') return render_template('login.html') ``` 4. 创建模板文件 创建register.html和login.html文件来显示注册登录表单。 ``` <!DOCTYPE html> <html> <head> <title>Register</title> </head> <body> <h1>Register</h1> <form method="POST" action="{{ url_for('register') }}"> <input type="text" name="username" placeholder="Username"> <br> <input type="password" name="password" placeholder="Password"> <br> <input type="submit" value="Register"> </form> </body> </html> ``` ``` <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <h1>Login</h1> {% if error %} <p>{{ error }}</p> {% endif %} <form method="POST" action="{{ url_for('login') }}"> <input type="text" name="username" placeholder="Username"> <br> <input type="password" name="password" placeholder="Password"> <br> <input type="submit" value="Login"> </form> </body> </html> ``` 以上是一个简单的Flask应用程序,实现了用户注册登录功能。需要注意的是,此应用程序还需要设置会话密钥来保护用户会话。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值