一.项目大概框架和功能
1.项目框架
该项目大致分为两个方面,一个是管理员的,另一个是用户的。
2.项目的功能
(一)管理员 a.管理员可以进行注册,登录。 b.管理员登录后可以查看自己的个人信息。 c.管理员可以发布,修改,删除自己的微博。 d.管理员可以删除其他用户的微博。 e.管理员可以查看用户的个人信息。 (二)用户 a.用户可以进行注册,登录。 a.用户登录后可以查看自己的个人信息。 c.用户可以发布,修改,删除自己的微博。
二.初步代码
用户注册,登录,查看个人信息,退出登录。
from datetime import datetime
import flask
from flask import Blueprint
from flask import *
from pymysql import IntegrityError
from libs.untils import gen_password, check_password
from user.models import User, db
user_bp=Blueprint('user',__name__)
user_bp.template_folder='./templates'
user_bp.static_folder='./static'
#注册 头像上传
@user_bp.route('/register',methods=['GET','POST'])
def register():
if request.method=='POST':
#通过请求将页面上接收的参数取出来
nickname= request.form.get('nickname','').strip()
password=request.form.get('password','').strip()
gender=request.form.get('gender','').strip()
bio=request.form.get('bio','').strip()
city=request.form.get('city','').strip()
avatar=request.form.get('avatar','').strip()
user=User(
nickname=nickname,
password=gen_password(password),
gender=gender if gender in ['male','female'] else 'male',
bio=bio,
city=city,
# birthday=birthday,
avatar=avatar
# create=create
)
db.session.add(user)
try:
db.session.commit()
except IntegrityError:
db.session.rollback()
return render_template('register.html',errors='昵称被占用,换一个')
return redirect('/user/login')
else:
return render_template('register.html')
@user_bp.route('/login',methods=['GET','POST'])
def login():
flask.session['login'] = ''
if request.method=='POST':
nickname=request.form.get('nickname','').strip()
password=request.form.get('password','').strip()
user=User.query.filter_by(nickname=nickname).first()
if user is None:
return render_template('login.html',error='用户名有误')
print(password,user.password)
if check_password(password,user.password):
session['uid']=user.id
return redirect('/user/info')
else:
return render_template('login.html',error='密码不正确')
else:
if 'uid' in session:
return redirect('/user/info')
else:
return render_template('login.html')
# return render_template('dl.html')
@user_bp.route('/logout')
def logout():
session.pop('uid')
return redirect('/')
@user_bp.route('/info')
def info():
uid=session.get('uid')
if uid:
user=User.query.get(uid)
return render_template('info.html',user=user)
else:
return render_template('login.html',error='请先登录')
|