Flask之初识

Flask初识

  1.和几种框架的对比 

  Django :
    优点:大 组件全 session models
    缺点:所有资源全部加载,造成资源上一定的浪费

  Flask :
    优点:小 短小精悍 session 三方组件多太多了
    缺点:稳定性相对而言较差

  Tornado:
    优点 :异步 IO 非阻塞 原生Websocket

  2.由于之前已经学习过Django,所以Flask可基于Django框架学习

    2.1 安装  pip install flask

    2.2 启动flask:

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

    2.3 flask的路由

      @app.route("/home",methods=["GET","POST"])

    2.4 Response三剑客 + 小儿子:

      return "hello s13 students"                           # Django HttpResponse 返回字符串
      return render_template("index.html")           # 返回模板
      return redirect("/index")                                # 重定向跳转
      小儿子
      return send_file("2.mp3")                             # 打开文件并返回客户端
      return jsonify({"name":"yinwangba"})           # 返回标准的json格式字符串 content-type: application/json

    2.5 Request:

      # print(request.form)           # form   存放form表单中的序列化数据
      # print(request.args)           # args    存放URL中的序列化数据
      # print(request.values)          # values   存放URL和form表单中的序列化数据
      # print(request.method)                # method    存放请求方式
      # print(request.path)           # path   路由地址
      # print(request.url)              # url      请求全部地址 http://127.0.0.1:5000/home?id=jwb&username=ywb
      # print(request.host)           # host         主机位 127.0.0.1:5000
      # print(request.host_url)          # host_url   将主机位转成url http://127.0.0.1:5000/
      # print(request.data)           # data         当请求头content-type无法被识别时
      # print(request.json)           # json         当请求头content-type:application/json
      # print(request.headers)          # headers  查看请求头
      # print(request.files.get("file"))         # files         获取文件对象
      # file = request.files.get("file")
      # file.save(file.filename)

    2.6 Jinja2:

      a.模板

      {{}} 引用变量 非逻辑代码时使用
      {%%} 逻辑代码使用

      b.返回安全字符
      | safe
      Markup : from flask import Markup 后台返回安全标签字符串

      c.模板继承
      {% block jj2 %}
      {% include "login.html" %}
      d.宏的概念
      {% macro func(name,type_name) %}
      <input type="{{ type_name }}" name="{{ name }}">
      <input type="submit" value="提交文件">
      {% endmacro %}
      {{ func("file","file") }}

    2.7 Flask中的Session组件:

      from flask import session
      app.secret_key = "OldBoyEdu.com"
      session被序列化后存放在 浏览器的cookie中

    2.8 特殊装饰器:

      @app.template_global()
      def a_and_b(a,b):
      return a+b

      @app.template_filter()
      def abc(a,b,c):
      return a+b+c

猜你喜欢

转载自www.cnblogs.com/wdbgqq/p/9985937.html