• Flask基础


    python四大框架的比较

      Django web框架:

        优点:组件非常全,教科书式的框架

        缺点:资源浪费,因为组件多,大,还是相互关联的,随便卸载组件,可能会导致出现一些小问题

      Flask web框架:

        优点:扩展性强,精简小,简单

        缺点:稳定性较差,第三方组件新版本兼容性

      Tornado web框架:

        优点:异步io,非阻塞,原生WebSocket

        缺点:全部手写,很麻烦

      Sanic web框架:

        优点:异步框架,结合了Torando和Flask的所有优点

        缺点:复杂程度比较高,不太容易上手

    Flask的三行启动

    1 from flask import Flask
    2 
    3 app = Flask(__name__)
    4 
    5 app.run()
    Flask的启动

    Flask的带路由和视图启动

     1 from flask import Flask
     2 
     3 app = Flask(__name__)
     4 
     5 app.route("/")
     6 def index():
     7     return "hello,Flask"
     8 
     9 
    10 app.run()
    带路由和视图启动

    Flask的请求 request

      request.args   ---->> 接受的是url中的参数,获取到的是一个字典

      request.form   ---->> 接受的是formdata  获取到的是一个字典

      request.files   ----->> 接受的文件    接受到之后要记得保存(save(带名参数的地址))

      request.data   ----->> 存放的是请求体中的原始信息

      request.json   ---->>请求头中存在的Content-type:application/json 请求体中的数据存放在session中

    Flask框架的返回值

      return  " hell"   返回的是一个字符串

      return render_template("login.html)  返回的是一个模版

      return redirect("/)  返回的是一个链接地址

      return send_file("文件名字) 打开并且返回内容,自动识别文件类型,并且加入到Content-type:文件类型

      return jsonify(一般是字典)  返回标准格式的json字符串

    Flask Jinja2

      {{}} 引用 执行 非逻辑代码

      {%%} 逻辑代码,引用变量

      Markup 安全字符串

      @app.template_global()  全局函数

      {% macro func() %}

    ​   {% endmacro %}

    Flask Session

      将session这个字典,通过secret_key 序列化 存放在浏览器中的cokies中

    Flask的路由详情

      methods = []  #列表中写的是请求方式

      endpoint = 反向地址字符串 默认值试图函数名   获取的时候 url_for()

      srrict_slashes 是否严格遵循路由地址结尾 "/"

      defaults = {"nid":1} 默认值参数

      redicret_to =  "一个地址"  #返回的状态码是301  永久重定向

    Flask 实例化配置

      template_forder = "存放模版文件的文件夹名"  #指定模版存放默认路径 默认值:templates

      static_forder = "  "  #指定静态文件存放的路径 

      static_url_path = " " #指定静态文件的访问路径

      static_host = ""  #  远程静态文件存放服务器

    Flask 蓝图

    什么是蓝图: Blueprint  一个不能够被run的Flask实例

    创建一个蓝图:  

    from flask import Blueprint
    
    user = Blueprint("user",__name__,template_foeder="模版地址",url_prefix="访问地址的前缀")
     
     @user.route("/")
     def index():
        pass
    

      

    蓝图的注册:

      import 蓝图的名字

      app.register_blueprint(蓝图的名字)

    Flask的特殊装饰器

    重定义错误信息:

      @app.errorhandler(404):

      def error(a):

        return "你要返回的页面或者...."

      @app.before_request:     #请求进入函数之前  进入此函数

      def be1():

        你要执行的操作

        return

      @app.after_request:   #响应返回客户端之前 请求函数结束之后

      def af1():

        你要执行的操作

        return

    Flask的CBV

     1 from flask import viesw
     2 
     3 class Login(views.MethodView):
     4     
     5     def get():
     6         pass
     7     def post():
     8         pass
     9 
    10 
    11 app.add_url_rule("/login",endpoint=None,view_func=Login.as_view(name="login))
    Flask中的cbv  
  • 相关阅读:
    正在与拖延症病魔抗争中
    Words For Today [20110724]
    短期目标[Till 20110805]
    Words For Today [20110804]
    Words For Today [20110731]
    Words For Today [20110801]
    Words For Today [20110723]
    《定位》一书
    马云的最近的话柱着拐杖跳高
    创业的人格
  • 原文地址:https://www.cnblogs.com/xinjie123/p/10588027.html
Copyright © 2020-2023  润新知