管理启动命令
pip install flask-script
from flask_script import Manager
manage = Manager(app)
manage.run()
在命令行写
-h Ip -p端口 -d debug
python hello.py runserver -h 0.0.0.0 -p 8080 -d
------------------------
@app.route('/get_uuid/')
def get_uuid():
import uuid
return str(uuid.uuid4())
uuid生成唯一标识
4351a188-099e-4840-9f1d-edc720f030e3
-------------------------
使用蓝图定义路由,目的拆分路由
blueprint把实现不同功能的module分开,也就是把一个大的App
分割成各自实现不同功能的module
pip install flask-blueprint
建立一个app文件夹再建立一个views.py文件
views.py
from flask import Blueprint
# 模块化管理路由
# 第一步 生成蓝图对象
blueprint = Blueprint('first',__name__)
@blueprint.route('/')
def hello():
return 'hello'
manage.py
from flask import Flask
from flask_script import Manager
from app.views import blueprint
app = Flask(__name__)
# 第二步: 注册蓝图
#url_prefix 路由前缀
app.register_blueprint(blueprint=blueprint,url_prefix='/app')
manager = Manager(app)
if __name__ == '__main__':
manager.run()
------------------
跳转
views.py
from flask import Blueprint, redirect,url_for
# 1. 定义路由跳转到hello方法
@blueprint.route('/redirect/')
def my_redirect():
# redirect跳转 url_for 反向解析
# first.hello 蓝图第一个参数.跳转的函数名
return redirect(url_for('first.hello'))
# 2.定义路由跳转到stu方法
@blueprint.route('/redirect_id/')
def stu_redirect():
return redirect(url_for('first.stu',id=3))
-----------
响应
# 返回一个响应
@blueprint.route('/make_response/')
def my_response():
# 第一个参数响应内容,第二个参数响应状态码
res = make_response('<h2>GOOD GOOD</h2>')
# 设置cookie key , value, ,max_age以秒为单位, expires以datetime为单位
res.set_cookie('token', '123456', max_age =6000)
return res
@blueprint.route('/del_cookie/')
def del_cookie():
res = make_response('<h2>删除cookie</h2>')
# 删除cookie
res.delete_cookie('token')
return res
-------------------------------
请求方式
# methods定义路由的请求方式 默认是GET
# GET POST PUT PATCH DELETE
@blueprint.route('/req/' , methods=['GET','POST'])
def req():
# 通过postman测试
if request.method == 'GET':
# 获得GET请求中传递的参数 request.args
# 获得GET请求中name=小明的name参数 request.args.get(key)或request.form.getlist(key)
return 'lml get'
if request.method == 'POST':
# 获得POST请求中传递的参数 request.form
# 获得值 request.form.get(key) 或request.form.getlist(key)
return 'lml post'
--------------------------
登录
@blueprint.route('/login/' , methods=['GET','POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
if request.method == 'POST':
# 模拟登录
username = request.form.get('username')
password = request.form.get('password')
if username =='lml' and password=='123':
# 将键值对作为值保存在客户端
session['user_id'] = 1
return redirect(url_for('first.hello'))
在manage.py进行加密
app.secret_key ='ntjyjeiyj45p6-43-=0234fk2m3k41mk2'
网友评论