zoukankan      html  css  js  c++  java
  • 1.8 flask 路由

    2019年1月8日:
    Flask:
    session 小而精 第三方组件
    相对不稳定 - 依赖第三方

    1.from flask import Flask
    app = Flask(name)
    app.run("0.0.0.0",5000,debug=True)

    2.路由
    @app.route("/",methods=["GET","POST"])
    def index():
    return

    3.Response三剑客
    HttpResponse return "三剑客"
    from flask import render_template
    render return render_template("index.html")
    from flask import redrict
    redrict return redrict("/路由地址")

    Flask小儿子:
    from flask import jsonify
    jsonify return jsonify({"name":"v1"}) # 响应头中加入
    Content-Type:application/json

    from flask import send_file
    send_file return send_file("文件路径") # 打开文件并返回文件内容
    会自动识别文件类型 Content-Type:文件类型
    二进制文件时背景特殊颜色

    4.flask中的Request
    公共变量
    from flask import request
    request.method #获取当前请求的方式
    request.form #获取FormData中的数据 to_dict()字典操作
    request.args #获取url中的数据 to_dict()字典操作
    request.json #请求头当中Content-Type:application/json将数据序列化到json中
    request.data #Content-Type无法被识别的时候,b""原始请求数据
    request.files #获取文件数据,save("文件名")

    request.values #查看 form 和 url 中的数据 不要使用 to_dict 会覆盖form中的数据

    5.Jinja2
    {{}} 引用变量 执行函数
    {%%} 逻辑代码中使用

    6.Flask中的Session:
    公共变量
    from flask import session
    app.secret_key = "#$%^&*()?/{}[]"
    存在cookie中的键值对(序列化后的数据),节省flask的开销,相对安全
    session["key"] = "v1"
    KeyError
    session.get("key")

    2019年1月8日
    今日内容:
    1.装饰器坑
    endpoint 默认视图函数名
    @functools.wraps(装饰函数)

    2.flask中的路由
    1.endpoint 反向生成url地址标志 默认视图函数名 url_for
    2.methods 视图函数允许的请求方式
    6."/index/" 动态路由路由参数
    def index(page)

    3.defaults={"nid":"123456"} 默认参数
    4.strict_slashes=True 是否严格遵循路由地址
    5.redirect_to="/login" 永久重定向 301
    

    3.flask实例化配置
    1.template_folder="temp" 默认模板路径 templates
    2.static_folder="static", 默认静态文件路径 static
    3.static_url_path="/static" 访问静态文件路由地址 默认是"/"+static_folder

    4.static_host=None 指定静态文件服务器地址
    5.host_matching = False,  # 如果不是特别需要的话,慎用,否则所有的route 都需要host=""的参数
    6.subdomain_matching = False,  # 理论上来说是用来限制SERVER_NAME子域名的,但是目前还没有感觉出来区别在哪里
    7.instance_path = None,  # 指向另一个Flask实例的路径
    8.instance_relative_config = False  # 是否加载另一个实例的配置
    9.root_path = None  # 主模块所在的目录的绝对路径,默认项目目录
    

    4.flask对象配置
    'DEBUG': False, # 是否开启Debug模式
    'TESTING': False, # 是否开启测试模式
    'SECRET_KEY': None # 在启用Flask内置Session的时候/开启flash,一定要有它
    'PERMANENT_SESSION_LIFETIME': 31, # days , Session的生命周期(天)默认31天
    'SESSION_COOKIE_NAME': 'session', # 在cookies中存放session加密字符串的名字

    class FlaskDebug(object):
    DEBUG=True
    SECRET_KEY="DEBUGmoshidesecret_key"
    PERMANENT_SESSION_LIFETIME = 7
    SESSION_COOKIE_NAME = "debug_session"

    app.config.from_object(FlaskDebug)

    5.flask蓝图 (蓝图配置)
    Blueprint 当成一个不能被启动的 app Flask示例
    from flask import Blueprint,render_template
    s4app = Blueprint("s4app",name,template_folder="apptemp",url_prefix="/blue")
    @s4app.route("/s4app")
    def s4appfunc():
    return render_template("s4app.html")

    app.register_blueprint(views.s4app)

    url_prefix="/blue" url前缀

    6.flask中的flash
    from flask import flash,get_flashed_messages

    flash("message","tag")
    get_flashed_messages()

    7.flask特殊装饰器
    @app.before_request # 请求进入视图函数之前
    @app.after_request # 响应返回客户端之前
    正常情况下流程:be1 - be2 - be3 - af3 - af2 - af1
    异常情况下流程:be1 - af3 - af2 - af1

    @app.errorhandler(404) # 重定义错误页面返回信息
    def error404(error_info):
    return 三剑客+小儿子

    今日作业:
    使用蓝图实现 增删改查4个蓝图
    - before_request - after_request - errorhandler

  • 相关阅读:
    Windows API
    c# 各类型数据库连接字符串格式
    [C#/C++]C#调用非托管DLL的APIs
    (F#) How to enable F# template working under Visual Studio 2010 Shell.
    ubuntu文件、目录操作基本命令
    javascript curry
    C#中组件与控件的主要区别是什么?
    下拉菜单
    js 尺寸和位置 笔记
    $.each
  • 原文地址:https://www.cnblogs.com/zzy7372/p/10241350.html
Copyright © 2011-2022 走看看