zoukankan      html  css  js  c++  java
  • flask基础

    1. Django Web框架
    优点:大而全,Froms Admin model ......
    缺点:浪费资源

    2. Flask Web框架
    优点:短小精悍,session(存放在cookies),三方组件强大
    缺点:运行稳定性较差,你还不会


    三行代码:
    from flask import Flask
    app = Flask(__name__)
    app.run()


    六行视图函数
    @app.route("/index") # 路由
    def index(): # 视图函数
    return "Hello OldBoy EDU" # Django HttpResponse


    response三剑客:
    httpresponse: return "hello"
    jsonify({k:v})

    render_template :
    先导入再 return
    templates 是模板的默认存放路径

    redirect:
    先导入再 return redirect("/login")

    send_file():
    先导入再 return send_file(打开文件并返回)


    request:
    args url地址当中的参数
    form POST请求体中的FormData中的数据
    values 获取所有参数(url,formdata)
    request.data content-type:jinwangbayinwangbabiwushangzanjiadelaowangba b"{username:jinwangba}"
    request.json content-type:application/json 将数据序列化字典中
    request.files 获取Formdata中的文件
    jwbdf = request.files["jinwangbadefile"]
    jwbdf.save(jwbdf.filename)

    属性类的:
    method 请求方式
    url 完整地址
    host 前半段儿 http://111.111.111.111:5000/
    path 后半段儿 /login

    模板语言:
    Jinja2
    {{ }} 非逻辑代码
    {% %} 逻辑代码

    路由:
    methods=["POST","GET"]
    endpoint="反向url地址"
    url_for("反向url地址")
    defaults={"nid":10}
    动态路由参数/index/<int:arg>
    url_for("endpoint",arg=123)


    Flask的配置
    1.Flask实例化配置
    static_folder = 'static', # 静态文件目录的路径 默认当前项目中的static目录
    static_url_path = None, # 静态文件目录的url路径 默认不写是与static_folder同名,远程静态文件时复用
    template_folder = 'templates' # template模板目录, 默认当前项目中的 templates 目录


    2.Flask对象配置
    'SECRET_KEY': None, # 之前遇到过,在启用Session的时候,一定要有它
    'SESSION_COOKIE_NAME': 'session', # 在cookies中存放session加密字符串的名字
    'JSONIFY_MIMETYPE': 'application/json'

    class FlaskConfigDebug(object):
    DEBUG = True
    SECRET_KEY = "DragonFire"


    class FlaskConfigTesting(object):
    TESTING = True
    SECRET_KEY = "DragonFire"

    app.config.from_object(FlaskConfigDebug)


    Flask蓝图(Blueprint)
    蓝图就是另一种形式的Flask实例
    detail_blueprint = Blueprint("serv",__name__, template_folder="serv_temp",
    static_folder="serv_static",
    static_url_path="/serv_static",url_prefix="/servs")



    Flask特殊装饰
    @app.template_folder() 类偏函数的方法
    @app.template_global() 全局函数
    @app.errorhandler(405)
    def my_405(args)

    @app.before_request
    def be1():
    return None 是继续
    return not None 是中断

    @app.after_request
    def af1(res):
    return res

    # be1 - be2 - af2 - af1
    # be1 - af2 - af1


    Flask中的session
    app.config["SECRET_KEY"] = "asdfasdfasdf"


    Flask中的 CBV
    class Login(views.MethodView):
    def get(self):
    return render_template("template.html")

    def post(self):
    username = request.form.get("username")
    password = request.form.get("password")
    if username == "yinwangba" and password == "jinwangba":
    return "登录成功"

    return render_template("template.html",msg="登录失败滚吧")

    app.add_url_rule("/login",endpoint=None,view_func=Login.as_view(name="login"))

  • 相关阅读:
    第3周 实践项目2 建设”顺序表“算法库(可参考为模板)
    第3周实践项目3 求集合并集
    【luogu 2529】【SHOI 2001】击鼓传花
    【BZOJ 3270】博物馆
    【BZOJ 2337】XOR和路径
    浅谈期望dp
    【codeforces 24D】Broken Robot
    【POJ 1463】Strategic game
    【POJ 3585】Accumulation Degree
    【luogu 3146/3147】248/262144
  • 原文地址:https://www.cnblogs.com/luck-L/p/9873072.html
Copyright © 2011-2022 走看看