一个python Flask 写的登录,退出,装饰器 代码(当记录下)
# -*- coding:utf-8 -*-
from flask import Flask, request,make_response,render_template, redirect, url_for,jsonify,session
from functools import wraps
from werkzeug.utils import secure_filename
import os
import commands
from os import path
import socket
import time
import sys
import platform
import psutil
#import pymysql
reload(sys)
sys.setdefaultencoding('utf-8')
from config import * #导入自定义函数
from fetcher import * #导入自定义函数
##定义创建时间
createdate = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
datas = time.strftime('%Y-%m-%d',time.localtime(time.time()))
##new一个对象
app = Flask(__name__)
##设置key
app.secret_key = "1231213"
##登录路由
@app.route('/login',methods=['GET','POST'])
def login():
if request.method == "GET": #判断如果是get直接返回登录页面
return render_template('login.html')
else:
user = request.form.get('username')
pwd = request.form.get('password')
if user == 'admin' and pwd == '123456' #判断账户密码是否正确
session['user_info'] = user
return redirect('/admin') #正确跳转到admin页面
else:
return render_template('login.html',msg='用户或密码错误,请重新输入')#如果不正确跳转到登录页面,提示账户密码错误
def login_required(func): #定义登录装饰器
@wraps(func)
def wrapper(*args,**kwargs):
if session.get('user_info'):
return func(*args,**kwargs)
else:
return redirect(url_for('login'))
return wrapper
##定义退出登录页面路由
@app.route('/logout')
def logout():
session.clear() #清除所有session
return redirect(url_for('login'))
##定义我的信息页面路由
@app.route('/me')
def me():
return '当前用户:' + session['user_info'] + ' ' + '当前时间:' + createdate
##定义首页页面路由
@app.route('/')
def index():
data1 = [] #定义查询需要存储的list
sql1 = "select * from vid_prod order by time desc limit 4" #查询sql语句
sql_qeue(sql1,data1) #执行查询 sql_qeue 是写好的数据库查询函数
return render_template("index.html",prod1=data1) #将参数返回给页面
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8088,debug=True)
app.run()