web里面的index
-- encoding: utf-8 --
from flask import *
from utils.captcha.captcha import captcha
import re
from models import User
from apps import db
index_blue = Blueprint(‘index’, name, template_folder=’…/…/templates’)
@index_blue.route(’/image’)
def image():
name, text, image_url = captcha.generate_captcha()
session[‘img_code’] = text
response = make_response(image_url)
response.headers[‘Content-Type’] = ‘image/jpg’
return response
@index_blue.route(’/register’,methods=[‘GET’,‘POST’])
def register():
if request.method == ‘POST’:
user = request.form.get(‘user’)
pwd1 = request.form.get(‘pwd1’)
pwd2 = request.form.get(‘pwd2’)
img = request.form.get(‘img’)
if all([user,pwd1,pwd2,img]):
u = User.query.filter(User.username == user).first()
if u:
flash(‘用户名已存在’)
else:
if pwd1 == pwd2:
if img.lower() == session.get(‘img_code’).lower():
us = User()
us.username = user
us.password = pwd1
db.session.add(us)
db.session.commit()
return redirect(url_for(‘index.login’))
else:
flash(‘两次密码输入不一致’)
return render_template(‘register.html’)
@index_blue.route(’/login’,methods=[‘GET’,‘POST’])
def login():
if request.method == ‘POST’:
user = request.form.get(‘user’)
pwd = request.form.get(‘pwd1’)
img_code = request.form.get(‘img’)
if all([user,pwd,img_code]):
u = User.query.filter(User.username == user).first()
if u:
p = User.query.filter(User.password == pwd).first()
if p:
session[‘user_id’] = u.id
return redirect(url_for(‘index.index’))
else:
flash(‘密码不对’)
else:
flash(‘用户不存在’)
else:
flash(‘输入不完整’)
return render_template(‘login.html’)
@index_blue.route(’/’)
def index():
user = User.query.filter().group_by(User.id.desc())
dic = {}
user_list = []
for i in user:
user_list.append(i)
dic[‘user’] = user_list
dic[‘user_id’] = User.query.filter(User.id == session.get(‘user_id’)).first()
return render_template(‘index.html’, data=dic)
templates里面
index.html
用户id | 用户名 |
{{ user.id }} | {{ user.username }} |
login.html
密码
验证码
登录
register.html
密码
验证码
确认密码
注册