用flask写一个图文直播网页(三)

把基本的前端样式都弄好,然后就可以来实现它们的功能了哦(因为光有外表没有内涵是不行的嘛)(~ ̄▽ ̄)~

一步一步来

在mysql数据库中建表

由于小编使用的是mysql数据库(其他数据库都行,哪个熟练用哪个),接下来的先在mysql中建库(tuwen)、建两张表(admin、photo)admin用来存储管理员的账号密码,photo用来存储图片和文字信息。

modle.py

from exts import db
from datetime import datetime

class Admin(db.Model):
__tablename__ = 'admin'
id = db.Column(db.Integer, primary_key = True, autoincrement = True)
telephone = db.Column(db.String(20), nullable = False)
username = db.Column(db.String(100), nullable = False)
password = db.Column(db.String(100), nullable = False)

class Article(db.Model):
__tablename__ = 'photo'
id = db.Column(db.Integer, primary_key = True, autoincrement = True)
picture_path = db.Column(db.String(100), nullable = True)
content = db.Column(db.Text, nullable = True)
create_time = db.Column(db.DateTime, default = datetime.now)

建完库跟表,下面就要进行数据库连接了

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@localhost:3306/tuwen?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = True

实现登录功能

sc.py

  # 登录
@app.route('/login/', methods = ['POST', 'GET'])
def login_a():
if request.method == 'GET':
    return render_template('login.html')
else:
    telephone = request.form.get('telephone')
    password = request.form.get('password')
    user = Admin.query.filter(Admin.telephone == telephone, Admin.password == password).first()
    if user:
        session['user_id'] = user.id
        session.permanent = True
        return redirect(url_for('upload_file'))
    else:
        return u'账号或密码输入错误,请确认后重新输入!'

实现登出功能

sc.py

# 登出
@app.route('/logout/')
def logout_a():
session.clear()
return redirect(url_for('login_a'))

相比较登录,登出的代码就少的多,清除session缓存就行了

实现注销功能

sc.py

# 注销
@app.context_processor
def my_context_processor():
user_id = session.get('user_id')
if user_id:
    user = Admin.query.filter(Admin.id == user_id).first()
    if user:
        return {'user': user}
return {}

最后不要忘记在父模板中连接对应的按钮,比如:
base.html

  

你可能感兴趣的:(用flask写一个图文直播网页(三))