Flask起步

Flask

- 所有的Flask程序都必须创建一个程序实例
- Flask类的构造函数只有一个必须指定的参数,即程序主模块或包的名字
- Flask 用这个参数决定程序的根目录,以便稍后能够找到相对于程序根目录的资源文件位置。

编写一个hello world

  • 首先需要导入Flask类,并创建类的对象
from flask import Flask
app = Flask(__name__)
  • 装饰器的作用是将路由映射到视图函数
  • 程序实例需要知道对每个URL请求运行哪些代码,所以要保存一个URL到Python函数的映射关系。
  • 在Flask程序中定义路由可以使用实例对象提供的app.route装饰器,把装饰器的函数注册为路由
@app.route('/')
def home():
    return 'Hello World'
  • 执行Flask实例对象的run方法,启动web服务器
  • name== 'main’在这里确保了直接执行这个脚本时才启动开发web服务器,如果这个脚本由其他脚本引入,程序嘉定父级脚本会启动不同的服务器,因此就不会执行app.run()
if __name__== '__main__':
    app.run()

Flask程序实例在创建的时候,需要默认传入当前Flask程序所指定的包(模块)
import_name
  • Flask程序所在的包或模块,传__name__就可以
  • 它可以决定Flask在访问静态文件时查找的路径
static_url_path
  • 静态文件访问路径,可以不传,默认为/ + static_folder
static——folder
  • 静态文件存储的文件夹,可以不传,默认为static
template_folder
  • 模板文件存储的文件夹,可以不传,默认为templates
Flask将配置信息保存到了app.config属性中,该属性可以按照字典类型进行操作。

主要的使用有三种方式:

  • 从配置对象中加载(可以继承)
app.config.from_object(你定义的配置对象)
from flask import Flask


class Default(object):
    MY_SQL = 'mysql address '


class DeafultConfig(Default):
    REDIS = 'redis address'

app = Flask(__name__)

# 从配置对象中加载
app.config.from_object(DeafultConfig)


@app.route('/')
def index():
    print(app.config['MY_SQL'])
    print(app.config['REDIS'])
    return '<h1>Hello World!</h1>'


if __name__ == '__main__':
    app.run()
  • 从配置文件中加载
app.config.from_pyfile(配置文件的名字加后缀,不需要导包)
from flask import Flask

app = Flask(__name__)
# 导入配置文件
app.config.from_pyfile('settings.py')


@app.route('/')
def index():
    print(app.config.get('SECRET_KEY'))
    return '<h1>Hello World!</h1>'


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

  • 从环境变量中加载
  • Flask使用环境变量加载配置的本质是通过环境变量值找到配置文件,再读取配置文件的信息,其使用方式为
app.config.from_envvar('环境变量名')

关于silent的说明:

  • 表示系统环境变量中没有设置相应值时是否抛出异常

  • False 表示不安静的处理,没有值时报错通知,默认为False

  • True 表示安静的处理,即时没有值也让Flask正常的运行下去

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值