先在pc上创建两个包, 一个叫static文件(放css文件的)
一个叫templates (放html文件的)
创建函数的那些html文件放在templates中
#导入模板
from flask import render_template
import redis
from flask import Flask
from flask_script import Manager
from flask import make_response, render_template, \
request, session
from flask_session import Session
app = Flask(__name__)
@app.route('/')
def hello():
return 'hello world' # 这就是后端给前端的响应的内容
@app.route('/make_res/')
def make_res():
# make_response('响应内容', 响应状态码)创建响应对象 响应状态码默认为200
# return make_response('hello flask day02', 200)
# return make_response('<h2>今天天气不好</h2>')
index = render_template('index.html')
return make_response(index, 200)
@app.route('/register/', methods=['GET', 'POST'])
def register():
print(request.method)
if request.method == 'GET':
return render_template('register.html')
if request.method == 'POST':
# 模拟注册功能
# 1.获取页面中传递的参数
username = request.form.get('username')
password = request.form.get('password')
password2 = request.form.get('password2')
# 模拟注册
if username == 'coco' and password == password2 \
and password == '123456':
# 返回登录页面
return render_template('login.html')
else:
return render_template('register.html')
@app.route('/login/', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
if request.method == 'POST':
# 1.获取参数
print(123)
username = request.form.get('username')
password = request.form.get('password')
# 2.模拟登录
if username == 'coco' and password == '123456':
# 向cookie中设置参数 (钥匙)
print('899')
res = make_response(render_template('index.html'))
# 设置cookie
res.set_cookie('token', '12345678', max_age=3000)
return res
else:
return render_template('login.html')
@app.route('/logout/')
def my_logout():
# 注销
res = make_response(render_template('login.html'))
res.delete_cookie('token') # 删除key值
return res
@app.route('/index/')
def index():
# 登录过后能看到index.html页面, 没有登录跳转到登录页面
token = request.cookies.get('token')
if token == '12345678':
# 判断登录成功了
return render_template('index.html')
else:
# 判断登录失败了
return render_template('login.html')
@app.route('/session_login/', methods=['GET', 'POST'])
def session_login():
if request.method == 'GET':
return render_template('session_login.html')
if request.method == 'POST':
# 解析参数
username = request.form.get('username')
password = request.form.get('password')
if username == 'coco' and password == '123456':
# 向session会话中设置键值对, 1代表True
session['login_status'] = 1
# session['name'] = 'coco'
# session['pwd'] = '123456'
return render_template('index.html')
else:
return render_template('session_login.html')
@app.route('/session_index/')
def session_index():
if 'login_status' in session:
return render_template('index.html')
else:
return render_template('session_login.html')
@app.route('/session_logout/')
def session_my_logout():
# 注销
del session['login_status']
return render_template('session_login.html') # 重新渲染下页面
# 设置secret_key加密, 加密复杂程度和设置有关,不能告诉别人的
# 此时存在cookie中的
app.secret_key = '1234567890'
# 配置session的信息
# from flask_session import Session
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = redis.Redis(host='127.0.0.1', port=6379)
Session(app) # 会话
manage = Manager(app)
if __name__ == '__main__':
# app.run()
manage.run()
请求是前端发送给后端的
make_response是响应 后端给前端响应的内容
render_template 渲染页面在浏览器中显示出来
补充: 登陆注册功能就需要post
action = "/地址" 提交地址, 一般可以不写, 默认的当前浏览器地址