实现Flask基本程序
实现Flask基本程序
1、简单的7行代码实现一个web服务器
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return 'hello world'
if __name__ == '__main__':
app.run()
说明:这里的hello word和我们在python程序print打印的hello word完全不同,这是web服务器,前端访问请求响应的结果
2、实现Flask基本程序的要求
具体步骤:
1、导入Flask类
2、创建Flask类的实例对象
3、定义路由和视图函数
4、启动服务器
3、Flask实现web服务代码说明
1、导入Flask类
from flask import Flask
2、 创建Flask类的实例对象
app = Flask(__name__)
注意 这样对 Flask(name) 是有要求的
具体要求
参数:必须是字符串,__name__的作用确定程序启动文件所在的位置;
符串,__name__的作用确定程序启动文件所在的位置;
实例路径会影响静态文件的访问;
http://127.0.0.1:5000/static/hello.html
例如 “name” 行 abc不行、 ab行、 abcd行;
“name” 行
ab行
abc不行
结论:如果传入的参数为标准模块名,会影响静态文件的访问,不会影响视图函数的访问;
3、定义路由和视图函数
@app.route("/")
def hello():
return 'hello world'
4、程序入口
if __name__ == '__main__':
app.run()
main方法说明
if __name__ == '__main__':
当前文件独立运行时,该表达式成立
当前文件被导入到其它文件中调用,该表达式不成立,name == 文件名
4、 应用程序配置参数
对于Flask对象初始化参数仅仅设置的是Flask本身的属性,比如:
Flask从哪里读取静态文件
Flask从哪里读取模板文件
…
等等。
应用程序配置参数设置的是一个Web应用工程的相关信息,比如:
数据库的连接信息
日志的配置信息
自定义的配置信息
…
等等
作用
集中管理项目的所有配置信息
使用方式
Django将所有配置信息都放到了settings.py文件中,而Flask则不同。
Flask将配置信息保存到了app.config属性中,该属性可以按照字典类型进行操作。
读取
app.config.get(name)
app.config[name]
设置
主要使用以下三种方式:
1、从配置对象中加载
2、从配置文件中加载
3、从环境变量中加载
1、从配置对象中加载
from flask import Flask
# 配置文件加载:字典形式存储配置信息
# 1、从配置对象中加载
class DefaultConfig(object):
MYSQL_URL = 'mysql address 5555555555555'
app = Flask(__name__)
# 获取配置对象的配置信息
app.config.from_object(DefaultConfig)
@app.route('/')
def index():
# config是Flask中自带的配置对象,保存了程序的配置信息
print(app.config.get('MYSQL_URL'))
return 'hello world'
if __name__ == '__main__':
app.run()
from flask import Flask
from set import DefaultConfig, ProductionConfig
app = Flask(__name__)
app.config.from_object(DefaultConfig)
@app.route('/')
def index():
# 获取配置信息
print(app.config.get("MYSQL_URL"))
return 'hello world'
if __name__ == '__main__':
app.run()
2、从配置文件中加载
from flask import Flask
# 1、从配置文件中加载
app = Flask(__name__)
# 获取配置文件的配置信息, ini 初始化文件,里面保持的是配置信息
app.config.from_pyfile('settings.py')
@app.route('/')
def index():
# 获取配置信息
print(app.config.get('SECRET_KEY'))
return 'hello world'
if __name__ == '__main__':
app.run()
配置文件也可以不是.py形式 列如ini文件
from flask import Flask
# 1、从配置文件中加载
app = Flask(__name__)
# 获取配置文件的配置信息, ini 初始化文件,里面保持的是配置信息
app.config.from_pyfile('settings.py')
@app.route('/')
def index():
# 获取配置信息
print(app.config.get('SECRET_KEY'))
return 'hello world'
if __name__ == '__main__':
app.run()
3、从环境变量中加载
from flask import Flask
# 配置文件加载:字典形式存储配置信息
# 三种形式:
# 1、从配置对象中加载
# 2、从配置文件中加载
# 3、从环境变量中加载
# class DefaultConfig(object):
# MYSQL_URL = 'mysql address'
# REDIS_URL = 'redis address'
app = Flask(__name__)
# 获取配置对象的配置信息
from set import DefaultConfig, ProductionConfig
app.config.from_object(DefaultConfig)
# 获取配置文件的配置信息,可以加载不是py格式的文件;
# ini初始化文件,里面保存的是配置信息
# app.config.from_pyfile('settings.ini')
# 从环境变量中加载
# silent表示沉默,是否记载到环境变量的配置信息
# 如果True表示沉默,加载不到不报错
# 如果False表示不沉默,加载不到报错
app.config.from_envvar('SET', silent=True)
@app.route('/')
def index():
# config是Flask中自带的配置对象,保存了程序的配置信息
# print(app.config.get('MYSQL_URL'))
# 获取配置信息
# print(app.config.get('SECRET_KEY'))
# 从环境变量文件中获取配置信息
print(app.config.get("SECRET_KEY"))
return 'hello world'
if __name__ == '__main__':
app.run()
5、工厂函数
需求: 在项目中,配置信息的使用方式;
工厂模式:
1. 定义工厂函数,封装创建程序实例的代码
2. 定义函数的参数,可以根据参数的不同,生成不同的app
from flask import Flask
from set import DefaultConfig, ProductionConfig
# 需求: 在项目中,配置信息的使用方式;
# 工厂模式:
# 1. 定义工厂函数,封装创建程序实例的代码
# 2. 定义函数的参数,可以根据参数的不同,生成不同的app
def create_flask_app():
app02 = Flask(__name__)
app02.config.from_envvar('SET', silent=True)
return app02
def create_app(config_name):
app01 = Flask(__name__)
app01.config.from_object(config_name)
return app01
app = create_app(DefaultConfig)
@app.route("/")
def hello():
print(app.config.get("MYSQL_URL"))
print(app.config.get("REDIS_URL"))
return 'hello world'
if __name__ == '__main__':
app.run()
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfhhkg
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01