Flask - 配置和创建路由

装饰器

  • 为什么要用装饰器 ?
    • 在不改变原函数的基础上, 对函数执行前后进行自定义操作.

原函数

def index(a):
    return a + 100

# 执行
v = index(2)
print(v)

# 返回函数名
print(index.__name__)

装饰器

def wapper(func):
    def inner(*args, **kwargs):
        print("---1---")
        return func(*args, **kwargs)
    return inner

@wapper
def index(a):
    return a + 100
  • @wapper的作用
    • 执行wapper函数, 将被装饰的函数当做参数
    • 将第一步的返回值, 重新赋值给新 index = wapper(index)
    • 这时的 print(index.__name__) 等于 inner

需求

  • 当函数被装饰之后, 使用print(index.__name__) 返回的依然是之前的函数名
    • 使用functools模块 : @functools.wraps(func)
def wapper(func):
    @functools.wraps(func)
    def inner(*args, **kwargs):
        print("---1---")
        return func(*args, **kwargs)
    return inner

配置文件

  • app.config.from_object("python类或类的路径")
    • 比如 : app.config.from_object("settings.BaseConfig")

配置

  • 配置数据库 : DATABASE_URI = 'mysql://user@pro/foo'
  • 是否开启Debug模式 : DEBUG
  • SECRET_KEY : 设置秘钥

创建路由

第一种方式(常用)

  • @app.route('/index', methods=['GET', 'POST'])

  • 源码解析 :

    • app.route会返回一个函数 decorator.
def route(self, rule, **options):

    def decorator(f):
        endpoint = options.pop("endpoint", None)
        self.add_url_rule(rule, endpoint, f, **options)
        return f

    return decorator
  • f对应的是index
  • rule 对应的是 /index
  • options 对应的是 methods

执行流程

  1. 执行 @app.route('/index', methods=['GET', 'POST'])
  2. @decorator 立即执行decorator(index), 把index作为参数

第二种方式

app.add_url_rule('/order', view_func=index)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值