import flask
from flask import Flask, render_template, request, session
#最小应用,是一个web服务器,当我们http://192.168.2.48:5000/index 返回一个html网页
#部署在生产环境(nginx/uWGSI 服务器Linux安装)
#内存数据库,全局变量,多线程共享资源(字典)
REGISTER_USERS={}
#创建flask 核心对象 app
app=Flask(__name__) #名字必须唯一
#向APP核心对象注册一个密钥(是一段文本,加密用的一个输入参数)
app.config["SECRET_KEY"]="123fdsfdsfdsfdsfsdfdsafdsafdsafdsafdsafsfds" # 配置核心对象的秘钥
#创建一个函数(API接口对外提供业务服务)------>装饰器进行注册--------------->flask视图函数
@app.route("/index") #url
def home():
return render_template("welcome.html") #返回一个字符串,内容会被浏览器,渲染成一个H5网页
@app.route("/register",methods=["POST"])
def register():
# 有很多用户,都提交表单。都由这个函数进行处理,但是request 对象,每会话都有一个对象的
username = request.form['username'] # 获取表单提交的数据 ,使用form属性(字典)
password = request.form['password']
REGISTER_USERS[username] = password # 增加字典项
print("---------------------------注册逻辑------------------------------")
# 注册用户保存在字典中
return render_template("register_success.html") # 换成json
@app.route("/login", methods=['POST'])
def login():
# -----------获取 客户端 表单提交的数据
login_name = request.form['login_name'] # 获取表单提交的数据 ,使用form属性(字典)
login_password = request.form['login_password']
# -----------------验证----------------------------
# 空数据验证:
if login_name and login_password:
# 验证是否注册
if login_name in REGISTER_USERS and REGISTER_USERS[login_name] == login_password:
# 用户成功登录 ,服务器生成唯一的id
# id放在http响应的Set-Cookies: 带过去
session['LOGINNAME'] = login_name
return "登陆成功"
else:
return "用户名不存在 或者 密码不正确"
else:
return "登陆密码或登陆名为空"
@app.route("/bus")
def business():
if not session.get('LOGINNAME'):
return "没有登录"
else:
print("------------------执行业务操作-------------------------------------")
return "执行业务操作成功"
@app.route('/quit')
def quit():
session.clear()
print("--------------------退出成功-----------------------------------------")
return 'delete successful!'
if __name__=="__main__":
app.run(debug=True) #启动服务器 #4.启动 flask框架自带的服务器(仅仅用于开发和测试功能,不能用于生成)