使用 Python 从 0 开发属于你的个人管理系统 12 篇 | 如何实现用户注册登录功能?

看到这里,相信你已经对 Flask 常用到的基础操作都有所了解,那么接下来你就可以开始利用你学到的东西,来一步一步的完善你的项目,我会带你实现一些主要的功能,后面你可以通过自己的想法,增加你想到的功能。

今天咱们就来实现用户的注册登录的功能。

配置数据库

如果你还没有安装数据库,可以回顾这篇安装好你的数据库 MYSQL,然后用 flask-sqlalchemy 配置它,创建好你的数据库之后,你可以在项目中的 config.py 文件中配置你的数据库信息:

USERNAME = 'root'
PASSWORD = 'root'
HOST = '127.0.0.1'
PORT = 3306
DATABASE = 'mysystem'

# 数据库链接 URI
DB_URI = 'mysql+mysqldb://{}:{}@{}:{}/{}'.format(USERNAME, PASSWORD, HOST, PORT, DATABASE)

SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = True

配置好了之后,你就可以在 _init_.py 中使用配置,以及导入相关的库,做一些初始化的操作:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy


app = Flask('mysystem')
app.secret_key = 'mysystem'

# 使用配置
app.config.from_pyfile('config.py')

# 实例化数据库对象
db = SQLAlchemy(app)

from mysystem import commands # 自己创建的 commands.py 文件

用户模型的创建

用了 db 对象,我们就可以创建用户模型了,用户的数据库需要定义用户的 ID,用户名称,用户密码。

在 models.py 中,创建一个用户类来生成用户数据表:

from mysystem import db

class User(db.Model):
    __tablename__ = 'my_user'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(30), nullable=False)
    admin_password = db.Column(db.String(120), nullable=False)

用户名密码的创建

一般情况下,数据库不会存储明文密码,因为这样做不安全,密码的存储应该是通过加密生成密钥,然后才存储到数据库中。

我们可以通过

本文隐藏内容 登陆 后才可以浏览
运行一下命令 flask login:

当密码输入的不是 admin 时:


Username: admin
Password: 
用户名或密码不正确

当密码输入的是 admin 时:

Username: admin
Password: 
登录成功

这样的实现方式就相对安全很多,尽管数据库被人发现,他也无法知道用户的具体密码。

ok,以上就是今天给你带来的分享,用户登录实现思路你已经知道了,下一步你知道如何把这个流程渲染到网页去么?你可以先试试。

发表回复