• flask学习


     - 1 了解flask

       - flask小而精,自由,灵活,可扩展性强,第三方库的选择面广,入门简单,非常适合小型网站,非常适合开发web服务的API,大型网站也无压力,但代码架构需要自己设计,各方面性能均优于或等于django,硬要说有什么缺点,那就是稳定性问题,使用了大量第三方库,flask如果更新,对于这些库可能会出现兼容问题

     - 2  一段简单的flask代码

    1 from flask import Flask # 导入代码
    2 app = Flask(__name__) # 实例化Flask对象app
    3 
    4 @app.route("/") # app中的route装饰器
    5 def index(): # 视图函数
    6     return "Hello World"
    7 
    8 app.run() # 启动Flask

     - 3  flask中的render,redirect,HttpResponse.

       - 在flask中的HttpResponse在我们看来其实就是直接返回字符串

       - 每当访问/re这个地址时,视图函数test1就会触发 , redirect("/")进行路由跳转到 "/" 并会触发test,像这样的跳转我们称之为重定向

       - HTML模板渲染是每个web框架中都必须有的,render_template就是指定给页面返回html,flask会直接到templates文件夹下去找(注意文件名固定)

      - 4 request请求

       - 首先要知道

       - 上面的意思就是这个url地址只允许post,get请求

       - 1) request.methed 请求方式

    @app.route("/home")
    def home():
        print(request.method) # GET

       - 2) request.form 通过formdata传递的值都在这里面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form action="" method="post">
        用户名 : <input type="text" name="user">
        密码 : <input type="password" name="pwd">
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
    HTML
    print(request.form) # ImmutableMultiDict([('user', 'jam'), ('pwd', '123')])
    # ImmutableMultiDict 就当作他是一个dict
    print(request.form["user"]) # jam
    print(request.form.get("pwd")) # 123

       - 3) request.args 你能看见的url参数全在这里

    print(request.args) #  ImmutableMultiDict([('user', 'jam'), ('pwd', '123')]
    print(request.args["user"])  # jam
    print(request.args.get("pwd")) # 123

         - request.args 与 request.form 的区别就是:

         - request.args 是获取url中的参数

         - request.form 是获取form表单中的参数

       - 4) request.values  2,3中的参数都在这 方法一样就不说了,这里提供一个参数

         - to_dict() 方法可以直接将我们的参数全部转化为字典形式

    print(request.values.to_dict())  # {'user': 'jam', 'pwd': '123'}
    # 注意这里
    # 如果url和form中的Key重名的话,form中的同名的key中value会被url中的value覆盖

       - 5) request.cookies 拿到浏览器的cookies信息

       - 6) request.headers 获取请求头信息

       - 7) request.url  访问的完整路径

       - 8) request.path  路由地址

       - 9) request.host  主机地址

       - 10) request.json 如果提交时请求头中Content-Type 是 application/json 就会在这拿到

       - 11) request.data  所有处理不了的就会变成字符串存在data里面

         - http://www.w3school.com.cn/media/media_mimeref.asp

         - 如果不属于上述类型的描述,requset就会将无法处理的参数转为json存入到data中

       - 12) request.files  文件上传都在这 

        print(request.files)  # ImmutableMultiDict([('file', <FileStorage: 'jam.txt' ('text/plain')>)])
        print(request.files["file"])  # <FileStorage: 'jam.txt' ('text/plain')>
        my_file = request.files["file"]
        my_file.save("jam.txt")  # 保存文件,里面可以写完整路径+文件名
  • 相关阅读:
    ubuntu-虚拟机跟主机资源共享的实现方法
    git- 仓库创建、修改、提交、撤销
    theme- 工作原理
    makeMtk- user 版本编译
    Button- 自定义控件添加自定义属性
    actionMode
    screen-Orientation 横竖屏设置
    worktools-mmx 添加编译模块
    eclipse- MAT安装及使用
    worktools-monkey 测试工具的使用
  • 原文地址:https://www.cnblogs.com/lzmdbk/p/10234677.html
Copyright © 2020-2023  润新知