把基本的前端样式都弄好,然后就可以来实现它们的功能了哦(因为光有外表没有内涵是不行的嘛)(~ ̄▽ ̄)~
一步一步来
在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
<ul class="nav navbar-nav navbar-right">
{% if user %}
<li><a href="#">管理员</a></li>
<li><a href="{{ url_for('logout_a') }}">注销</a></li>
{% else %}
<li><a href="{{ url_for('login_a') }}">登录</a></li>
{% endif %}
</ul>