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()
  • 相关阅读:
    text
    20165205 实验一 java开发环境的熟悉 实验报告
    20165205 2017-2018-2 《Java程序设计》第五周学习总结
    20165205 2017-2018-2 《Java程序设计》 第三周学习总结
    20165205 2017-2018-2 《Java程序设计》 第二周学习总结
    20165235 实验三 敏捷开发与XP实践
    20165235 结对编程项目-四则运算 整体总结
    20165235 祁瑛 2018-4 《Java程序设计》第八周学习总结
    20165235 第八周课下补做
    20165235 实验二Java面向对象程序设计
  • 原文地址:https://www.cnblogs.com/felixwang2/p/9259644.html
Copyright © 2011-2022 走看看