flask初识

一、Flask、Tornado与Django的相互比较

Flask:

       优点:小而精,短小精悍;第三方组件特别多

       缺点:组件更新速度取决于开源者

       应用:用于小型应用和快速构建应用,其强大的三方库,足以支撑一个大型的Web应用

Tornado:

       优点:有原生的websocket;异步任务;IO非阻塞;在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架

       缺点:组件没有,session都没有,还好支持jinja2

       应用:用于API后端应用,游戏服务后台,其内部实现的异步非阻塞真是稳得一批

Django:

       优点:大而全,组件非常全

       缺点:太大,加载大,浪费资源

       应用:用于大型Web应用由于内置组件足够强大所以使用Django开发可以一气呵成

二、Flask安装:

  pip3 install flask

三、开启flask项目:

from flask import Flask, render_template, redirect

# Flask类是WSGI应用程序

# 创建Flask实例,第一个参数是应用模块的名字或者包名,单一模块可以用__name__
ap1 = Flask("app")

 

# 开启调试模式的方法一
# ap1.config["DEBUG"] = True

# route()装饰器把一个函数绑定到对应的 URL 上。
#methods允许的请求方式
@ap1.route('/login/', methods=["GET","POST"])
def login():
    if request.method == "GET":
        # 放静态文件的文件包名必须是templates
        return render_template("login.html")
    else:
        # 不能return数字
        return redirect("/index")

 

@ap1.route("/")
def root_path():
    return redirect("/login")

 
if __name__ == "__main__":

    # 开启调试模式的方法二
    ap1.run(host="127.0.0.1", port=9527, debug=True)

 四、与Django对应着看Flask里的三剑客

1.Flask的HttpResponse

@ap1.route("/index/")
def index():

       return “hello world”

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

2.Flask的Redirect

from flask import redirect

@ap1.route('/login/', methods=["GET", "POST"])
def login():
    if request.method == "POST":
        # 不能return数字
        return redirect("/index")
    return “bala…bala”

每当访问"/login"这个地址的时候,视图函数login会触发redirect("/index") 跳转到url地址:  "/" 并会触发"/"对应的视图函数index()

3. Flask 中的 render (render_template)

from flask import render_template

@ap1.route("/index")
def index():

    return render_template("index.html")

HTML模板渲染是每个Web框架中都必须有的。注意: 如果要使用 render_template 返回渲染的模板,请在项目的主目录中加入一个目录 templates,不能错,否则会报jinja2的错误

posted @ 2018-08-20 14:41  桥前石头  阅读(102)  评论(0编辑  收藏  举报