from flask import Flask
app = Flask(__name__)
@app.route("/login",methods=["get","post"])
def login():
return "hello world"
# Response 5 种
# render_template("模板路径")
# redirect("/路由")
# "HttpResponse"
# 封装
# send_file("文件路径") 打开并返回文件内容 自动识别文件类型 Content-Type:文件类型
# jsonify 返回标准的JSON格式字符串 Content-Type:application/json
# Flask 1.1.1 中 直接返回字典 或元组 或列表时 自动执行 jsonify
# Request
# from flask import request
# request.method # 请求方式
# request.form # FormData中的数据
# request.args # 获取URL中的数据
# request.files # 获取文件数据 FileStorage save(文件路径)快速保存文件
# request.headers # 请求头
# request.cookies # cookie信息
# 95% 可能 会遇到的情况
# request.json # 请求头中 Content-Type:application/json 字典
# 前端即将被开除的情况
# request.data # Content-Type 不包含 Form 字眼 保存请求体的原始信息 b"" Content-Type 不能被识别
# Flask Session
# from flask import session
# app.secret_key = "$%^&&$%^&*(%^&*("
# session["user"] = "123"
# 交由客户端保管机制
# 客户端的Cookie中存储由secret_key序列化后的Session
# 路由
# @app.route("/index/<args>",methods=["get"])
# app.add_url_rule()
# methods=["get"] 允许请求方式
# endpoint 路由与视图函数之间的 Mapping 对应关系 , 默认值是视图函数名称
# defaults={"id":1} 默认参数
# strict_slashes=True 是否严格遵循路由规则 "/index/" == "/index" == False "/index" == True 默认True
# redirect_to 永久重定向 301 308
# 动态参数路由 "/index/<args>" def index(args)
# 初始化Flask
# app = Flask(__name__)
# __name__ 锁定当前项目目录
# template_folder 模板存放目录 默认 templates
# static_folder 静态文件存放目录 默认 static
# static_url_path 静态文件访问路径 默认 "/{static_folder}"
# Flask中的 Config 对象
# app.default_config # 查看默认配置
# app.config["DEBUG"] = True
# class DebugConfig(object):
# DEBUG=True
# SESSION_COOKIE_NAME = "$%^&*$%^&"
# SECRET_KEY = "%^&*$%^&*RT%YUI^&"
# app.config.from_object(DebugConfig)
# 装饰器
# @app.before_request # 请求进入视图函数之前
# def be1():
# return None # 不进行任何处理 只要有返回值则中断请求 直接响应
#
# @app.after_request # 视图函数结束 ,响应返回客户端之前
# def af1(res): # 接收响应
# return res # 返回响应
# 正常请求周期 : be1 - be2 - be3 - ViewFunc - af3 - af2 - af1
# 异常请求周期 : be1 - be2 - af3 - af2 - af1
# @app.errorhandler(404) # 错误信息重定义 只能监听错误码 4xx 5xx
# def error404(errorMessage): # 接收原始错误信息
# return "" # 5 种 Response
# 蓝图
# from flask import Blueprint
# 蓝图 是一个不能被run的Flask 示例 没有Config对象
# 蓝图的作用 功能解耦 代码解耦
# bp = Blueprint("蓝图表示当前app中唯一",__name__,url_prefix="/blue")
# url_prefix="/blue" url前缀 ,如果要访问当前蓝图中的应用 必须增加前缀 /blue
# @bp.route("/user",methods=("GET",)) # /blue/user
# def user():
# return ""
# app.register_blueprint(bp) # 注册蓝图 - Flask 示例中 添加蓝图应用
# CBV
# from flask.views import MethodView
# from flask import views
# class Login(MethodView)
# class Login(views.MethodView):
"""
根据Http 8 种 请求方式 定义当前视图类的方法
"""
def get(self):
pass
def post(self):
pass
app.add_url_rule("/login",view_func=Login.as_view(name="login"))
if __name__ == '__main__':
app.run("0.0.0.0",9527)
整理flask常规操作
最新推荐文章于 2022-03-11 14:37:04 发布