Flask(一) 简介

flask简单介绍

  • 短小精悍、可扩展性很强的一个web框架
  • 第三方组件(WTForms, SQLAlchemy...)http://flask.pocoo.org/extensions/
  • 上下文管理机制
  • Flask自己没带服务器,依赖于werkzeug(实现wsgi协议)
  • Flask模板依赖于jinja2
  • 一个web框架包含:(路由、视图(函数,类)、模板)、中间件、session...

flask安装

pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com flask

werkzeug简单使用

from werkzeug.wrappers import Response
from werkzeug.serving import run_simple


def run(environ, start_response):
    response = Response('Hello')
    return response(environ, start_response)


if __name__ == '__main__':
    run_simple('localhost', 8000, run)
-------------------------------------------
from werkzeug.wrappers import Request, Response
from werkzeug.serving import run_simple


@Request.application
def hello(request):
    return Response('Hello World!')


if __name__ == '__main__':
	run_simple('localhost', 4000, hello)

一个简单的flask hellword(默认监听5000端口)

from functools import wraps
def wrapper(func):
    @wraps(func)
    def inner(*args, **kwargs):
        return func(*args, **kwargs)
    return inner

# FBV
from flask import Flask

app = Flask(__name__)


@app.route('/index/', methods=['POST', 'GET'])
@wrapper
def index():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()


# CBV
from flask import Flask, views

app = Flask(__name__)

class IndexView(views.MethodView):
    methods = ['GET', 'POST']
    decorators = [wrapper]
    def get(self, *args, **kwargs):
        return 'GET'

    def post(self, *args, **kwargs):
        return 'POST'


app.add_url_rule('/', None, IndexView.as_view('IndexView'))

if __name__ == '__main__':
    app.run()
posted @ 2018-08-15 21:35  ret  阅读(104)  评论(0)    收藏  举报