Python制作简易注册登录系统制作简易注册登录系统
主要为大家详细介绍了Python简易注册登录系统的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参
考一下
这次我主要讲解如何用Python基于Flask的登录和注册,验证方式采用Basic Auth
主要用以下库
import os
#Flask的基础库
from flask import Flask, abort, request, jsonify, g, url_for
#Flaks的数据库操作的库
from flask.ext.sqlalchemy import SQLAlchemy
#Flask登录注册的库
from flask.ext.httpauth import HTTPBasicAuth
#加密解密密码的库
from passlib.apps import custom_app_context as pwd_context
#URL安全序列化工具
from itsdangerous import (TimedJSONWebSignatureSerializer
as Serializer, BadSignature, SignatureExpired)
首先当然是初始化
app = Flask(__name__)
# 设置密钥
app.config['SECRET_KEY'] = 'the quick brown fox jumps over the lazy dog'
# 数据库的配置
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
#数据库初始化
db = SQLAlchemy(app)
# 验证的初始化
auth = HTTPBasicAuth()
然后是建模建模
SQLAlchemy是ORM模型操作数据库的,所以是非常的方便
除了基本的属性之后我们我定义了一些必要的方法
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(32), index=True)
password_hash = db.Column(db.String(64))
# 加密密码
def hash_password(self, password):
self.password_hash = pwd_context.encrypt(password)
# 验证密码
def verify_password(self, password):
return pwd_context.verify(password, self.password_hash)
# 生成token,并设置过期时间
def generate_auth_token(self, expiration=600):
s = Serializer(app.config['SECRET_KEY'], expires_in=expiration)
return s.dumps({'id': self.id})
# 静态的验证token的方法
@staticmethod
def verify_auth_token(token):
s = Serializer(app.config['SECRET_KEY'])
try:
data = s.loads(token)
except SignatureExpired:
return None # token过期
except BadSignature:
return None # token无效
user = User.query.get(data['id'])
return user
注册注册功能
@app.route('/api/users', methods=['POST'])
def new_user():
username = request.json.get('username')