zoukankan      html  css  js  c++  java
  • flask框架(一):初入

    1、装饰器回顾

    # -*- coding: utf-8 -*-
    # @Author : Felix Wang
    # @time   : 2018/7/3 17:10
    
    import functools
    """
    def wrapper(func):
        def inner(*args, **kwargs):
            return func(*args, **kwargs)
    
        return inner
    
    
    @wrapper  # 执行index=wrapper(index)
    def index(request):
        pass
    """
    
    '''
    def wrapper(option):
        def inner(func, *args, **kwargs):
            return func(*args, **kwargs)
    
        return inner
    
    
    # 加参数表示执行两步
    @wrapper({'k': 'w'})
    # 先执行 inner=wrapper({'k':'w'})
    # @inner--》index=inner(index)
    def index(request):
        pass
    '''
    
    url_map = {
        '/index': 'index'
    }
    
    
    def route(option):
    # 建议写装饰器的时候都加上
        @functools.wraps(func)# 这一句用来帮助我们设置函数的元信息,加了这句就不用起别名了 
        def inner(func, *args, **kwargs):
            url_map[option['path']] = func
    
        return inner
    
    
    # 加参数表示执行两步
    @route({'path': '/index'})
    # 先执行 inner=wrapper({'k':'w'})
    # @inner--》index=inner(index)
    def index(request):
        pass

     2、session & cookie原理

    3、继承字典(在字典之上开发功能)

    # -*- coding: utf-8 -*-
    # @Author : Felix Wang
    # @time   : 2018/7/3 17:34
    
    class MyDict(dict):
        def __init__(self, *args, **kwargs):
            super(MyDict, self).__init__(*args, **kwargs)
            self['modify'] = True
    
    
    obj = MyDict()
    print(obj)  # {'modify': True} 

     内容详解:

    1、flask、django、tornado框架

    Django:重武器,内部包含了非常多的组件:ORM、Form、ModelForm、缓存、Session、中间件、信号等。。。。。。

    Flask:短小精悍,内容没有太多组件。第三方组件非常丰富。flask第三方组件:第三方插件网站

     flask的路由比较特殊,基于装饰器来实现,但是究其本质还是通过add_url_rule()来实现的。

    Tornado:异步非阻塞

    2、Flask快速入门

    a、安装

    pip3 install flask

    b、wsgi,Werkzeug 

    3、7行代码搭个flask

    # -*- coding: utf-8 -*-
    # @Author : Felix Wang
    # @time   : 2018/7/3 22:40
    
    from flask import Flask
    
    app = Flask(__name__)  # 实例化一个Flask对象
    
    
    # 将‘/’和函数index的对应关系添加到路由中
    @app.route('/')  # 执行两步   a=app.route()  a(hello_world)
    def index():
        return 'hello world'
    
    
    if __name__ == '__main__':
        # 监听用户请求
        # 如果有用户请求到来,则执行app的__call__到来
        # 一个对象加(),执行__call__方法
        app.run()
  • 相关阅读:
    VMware 11安装Mac OS X 10.10 (转载)
    ios]企业开发者账号申请
    SQL SERVER sa无法登陆的问题
    接触Ubuntu的第一周大致总结
    疯狂VirtualBox实战讲学录 以及 virtualbox完全学习手册 之我见
    必须使用角色管理工具 安装或配置microsoft.net framework 3.5
    02_brk/sbrk
    How to install qt5.9
    026_pickle
    024_iterator
  • 原文地址:https://www.cnblogs.com/felixwang2/p/9259644.html
Copyright © 2011-2022 走看看