Flask

Django ,Flask ,Tornado框架之间的比较:

 

下载Flask

pip install Flask

第一个Flask程序:

from flask import Flask #导入模块
app = Flask("__name__")  #实例化一个Flask对象
@app.route("/")   #装饰器
def index():   #视图
    reyurn "Hello,Word"

app.run(debug=True)   #启动
注意:debug=True,以后修改完代码不用重复启动

Flask之三剑客

render,redirect,HttpResponse

HttpResponse: return "Hello World" 返回字符串至客户端
render : return render_template("login.html")
与Django中的 render 使用一致 返回模板由浏览器渲染
redirect: return redirect("/login") # 302
跳转,重定向URL

Flask序列化:jsonify

from flask import jsonify
retrun jsonify({name:111}) # 返回json标准的字符串 
Content-Type:application/json

打开文件并返回文件内容(自动识别文件格式) send_file(path)

request请求:

  • 请求方式

表示:只有post和个体请求

 

  • request.method   请求方式
  • request.from   存放FormData中的数据 to_dict序列化成字典
<!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

 

  •  request.args  获取存放在URL中的数据

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

 

  •  request.url   获取完整的路径
  • request.path 获取路由地址
  • request.host 获取主机地址
  • request.values   获取 FormData and URL中的数据 不要用to_dict

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

print(request.values.to_dict())  # {'user': 'jam', 'pwd': '123'}
# 注意这里
# 如果url和form中的Key重名的话,form中的同名的key中value会被url中的value覆盖
  •  request.data  如果提交时请求头中的Content-Type 无法被识别 将请求体中的原始数据存放 byte
  • request.cookies  获取cookies中的数据,
  • request.headers  获取到请求头
  • 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.get("my_file")
    my_file.save("jam.txt")  # 保存文件,里面可以写完整路径+文件名

 

 Jinja2渲染

{{}} 主要用来引用变量,执行函数
{%%}  逻辑代码放在这里
|safe Markup    安全标签字符串
@app.template_global()
@app.template_filter()

 

posted @ 2019-01-07 21:29  魏三斗  阅读(221)  评论(0编辑  收藏  举报