zoukankan      html  css  js  c++  java
  • django和flask区别及简单使用

    Django 原生组件非常丰富 - 教科书式框架
    Django.Model - ORM
    Django.Form
    Django.ModelForm
    Django.Session Model
    Admin CsrfToken
    Django 加载项巨大 资源浪费
    Flask Web框架 -
    Flask 非常短小精悍 - 精简到只有一个 Session
    Flask 第三方组件 非常全
    Flask 第三方组件 - 运行稳定性相对较差
    羽绒服 半截袖
    Django 适合大型 密集型
    Flask 适合小型 API服务类项目
    1.Flask Web框架 + HelloWorld
    pip install Flask - 1.1.1
    Flask Flask库文件
    Jinja2 模板渲染库
    MarkupSafe 返回安全标签 只要Flask 返回模板或者标签时都会依赖MarkupSafe
    Werkzeug 德文“工具” == uWSGI 底层是 WSGI Flask项目启动都是基于Werkzeug
    应用Flask
    # 三行启动Flask 提供服务
    # from flask import Flask
    # app = Flask(__name__)
    # app.run()
    # 六行启动Flask 提供HelloWorld
    from flask import Flask # 导入Flask 类创建Flask应用对象
    app = Flask(__name__) # app = application
    @app.route("/index") # 为 Flask 应用对象增加路由
    def index(): # 与路由绑定的视图函数 视图函数名尽可能保持唯一
    return "HelloWorld" # “” 相当于 Django 中的 HttpResponse
    if __name__ == '__main__': # 当前文件处于脚本状态时运行如下代码
    app.run() # 启动Flask 应用
    模板设置

     

     2.Flask 中的 Response

       1.HTTPResponse("HelloWorld")       "HelloWorld"
    2.render("html文件") render_template("HTML文件") # 默认存放路径是"templates"
    3.redirect("/home") redirect("/home")
    # 302 HTTP status
    # 4xx 错误 客户端
    # 5xx 错误 服务器
    ResponseHeaders 中加入了一个 Localtion:http://url
    # Flask 特殊返回值
    4.send_file("文件路径") 返回文件
    # 打开并返回文件内容 自动识别文件类型 在ResponseHeaders中加入
    # Content-Type:文件类型 - *文件类型 是可以被客户端识别的文件类型
    # 不能识别的类型 下载处理 - 浏览器会下载
    ###### x-ms x二进制 ms微软 wma文件
    5.jsonify("字符串或数据类型") 返回标准格式的JSON字符串
    # Content-Type:application/json == 标准格式
    # Flask 1.1.1
    # return d # 暂时不建议使用 兼容性
    # 直接返回dict时 本质上在执行jsonify(d)
    # API 接口 AJAX.post({username:123}){
    function(data){ obj = data }}
    # 1.打包JSON 序列化JSON字符串
    # 2.编写ResponseHeaders 加入 Content-Type:application/json
    # 利用 Flask 做一个登录 username password
    # request?
    3.Flask 中的 Request
    methods=["GET","POST"] 在添加路由的装饰器中允许请求方式,覆盖
    1.request.form 获取FormData中的数据 to_dict() ImmutableMultiDict
    2.request.method 获取请求方式
    3.request.args # 获取URL中的数据 字符串 get("key") to_dict()
    4.
    f-orm 表 ORM
    from
    Falsk中的session
      session 服务端的键值对
      cookie 客户端的键值对
      交由客户端保管机制
    1.开启session[username] = 123
    {
      username:123
    }
    2.序列化字典转字符串
    3.加密字符串secretKeymi秘钥字符串
    接收反序列化session
    1.从cookie中获取到session key的值
    2.通过secretkey 解密session
    3.发序列化成字典
    Jinja2
      {{}}引用变量数据,执行函数
      {%%}逻辑代码
  • 相关阅读:
    A1042 Shuffling Machine (20)
    【SSM 4】Mybatis逆向生成工具
    【SSM 4】Mybatis逆向生成工具
    【SSM 3】Mybatis应用,和Hibernate的区别
    【SSM 3】Mybatis应用,和Hibernate的区别
    【SSM 2】spring常用注解
    【SSM 2】spring常用注解
    【SSM 1】SpringMVC、Spring和Struts的区别
    【SSM 1】SpringMVC、Spring和Struts的区别
    【java基础 5】树形结构数据加载的思考
  • 原文地址:https://www.cnblogs.com/zhang-da/p/13170009.html
Copyright © 2011-2022 走看看