IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 初识flask -> 正文阅读

[Python知识库]初识flask

1.Flask框架介绍与环境搭建

1.1Flask介绍

    Flask诞生于2010年, 使用python语言基于Werkzeug工具箱编写的轻量级Web开发框架
    Flask本身相当于一个内核, 其他几乎所有的功能都要用到扩展(邮件:Flask-Mail, 用户认证:Flask-Login, 数据库:Flask-SQLAlchemy).
 ? ?Flask的核心在于Werkzeug(路由模块), Jinja2模板引擎.
    # Flask的"轻"
 ? ?Flask的"轻", 不代表其功能不够强大, Flask拥有丰富的扩展, 其依赖于扩展来给应用添加功能, 众多的插件提供了数据库集成, 表单验证, 上传处理,各种各样的开放认证技术等, Flask的这些特性使得它在web开发方面变得非常流行
 ? ?# 注意: 如果构建大型项目, 使用很多扩展, Flask也会变的跟Django一样的重.

1.2.Flask框架环境搭建

# 安装虚拟环境管理包: virtualenvwrapper
pip install virtualenvwrapper
?
# 虚拟环境命令
创建虚拟环境: mkvirtualenv envname
激活虚拟环境: workon envname
查看虚拟环境: lsvirtualenv
移除虚拟环境: rmvirtualenv envname
退出虚拟环境: deactivate
 ? ?
# 环境依赖技巧
生成依赖清单: pip freeze > requirements.txt
自动安装依赖: pip install -r requirements.txt
# Flask框架的安装
pip install flask==1.0.2
?
# 注意:
flask的核心是Werkzeug和Jinja2, 所以在安装Flask的同时, 会自动安装上面的两个依赖.

flask核心在于werkzeug(路由模块),jinja2模拟引擎

类比django,路由,模板,ORM

flask 要完成功能,依赖于丰富的插件(扩展模块)

常见问题:

django与flask 有什么区别

2.配置虚拟环境主目录

在windows上环境变量中添加环境变量 WORKON_HOME

配置上目录 D:\virtual_envs

3.虚拟环境操作

3.1 虚拟环境命令

# 虚拟环境命令
创建虚拟环境: mkvirtualenv envname
激活虚拟环境: workon envname
查看虚拟环境: lsvirtualenv
移除虚拟环境: rmvirtualenv envname
退出虚拟环境: deactivate

4.安装flask

pip install flask==1.0.2

5.pip 高级使用导出环境中所有的包

pip freeze > requirements.txt 自动安装依赖: pip install -r requirements.txt

flask项目配置

1.flask配置理解

app.config是一个类字典的对象,里面已经有了很多默认的配置,我们可以向里面添加自己新的配置

向配置里添加配置

配置信息
print(app.config)
app.config['room'] = '407'

从配置中获取配置变量对应的值

获取配置中的信息
print(app.config.get(room))

2.配置对象加载

我们把配置信息,写入到一个类中,然后去加载

从配置对象中加载

# 1.从配置对象中加载
?
# (1).实现步骤:
 ? ?- 创建配置类(建议单独文件中创建)
 ? ?- 加载配置对象
 ? ?- 使用配置
?
# (2).示例:
    1).settings.py代码:
 ? ?class DefaultConfig(object):
 ? ? ? ?MYSQL_HOST = '127.0.0.1'
 ? ? ? ?MYSQL_PORT = 3306
 ? ?2).Flask实例文件代码:
 ? ?from flask import Flask
 ? ?# 导入配置类
 ? ?from settings import DefaultConfig
?
 ? ?app = Flask(__name__)
 ? ?# 从配置对象中加载配置
 ? ?app.config.from_object(DefaultConfig)
?
 ? ?
 ? ?@app.route('/')
 ? ?def index():
 ? ? ? ?# get方式调用配置
 ? ? ? ?mysql_port = app.config.get('MYSQL_PORT')
 ? ? ? ?print(mysql_port)
 ? ? ? ?# 字典键值方式调用配置
 ? ? ? ?mysql_host = app.config['MYSQL_HOST']
 ?      print(mysql_host)
 ? ? ? ?return 'load config from object'
?

2.1从配置对象加载

配置类:

配置类,写入到setting模块中(setting.py)

定义一个配置类
属性必须全是大写
class Config:
    配置属性=值
    ROOM = "407"
    MYSQL_HOST = "127.0.0.1"

2.2从配置文件加载

# 2.从配置文件加载
?
# (1).实现步骤:
    - 创建配置文件(py文件或其他格式文件均可)
 ? ?- 加载配置文件
 ? ?- 使用配置
 ? ?
# (2).示例:
    1).创建配置文件settings.py, 并编写配置信息:
 ? ?MYSQL_HOST = '127.0.0.1'
 ? ?MYSQL_PORT = 3306
 ? ?2).Flask实例代码:
 ? ?from flask import Flask
?
 ? ?app = Flask(__name__)
 ? ?# 从文件加载配置
 ? ?app.config.from_pyfile('settings.py')
?
?
 ? ?@app.route('/')
 ? ?def index():
 ? ? ? ?# 获取配置信息
 ? ? ? ?mysql_port = app.config.get('MYSQL_PORT')
 ? ? ? ?print(mysql_port)
 ? ? ? ?mysql_host = app.config['MYSQL_HOST']
 ? ? ? ?print(mysql_host)
 ? ? ? ?return 'Hello Flask'
?
?
 ? ?if __name__ == '__main__':
 ? ? ? ?app.run()

2.3从环境变量中加载

3.从环境变量中加载

(1).实现步骤:

- 创建配置文件(存放敏感信息, 不与项目同目录)
- 添加配置文件环境变量
- 获取配置

(2).添加配置文件环境变量

1).创建配置文件, 并拷贝配置文件路径: 步骤略
2).加载配置文件:
app.config.from_envvar('settings')
注意: 如果配置文件加载不到则会抛出异常, 禁止抛出异常可以添加silent参数为TRUE, 即app.config.from_envvar('settings', silent=True)
3).设置配置文件的环境变量, 如下图:
4).获取配置与上面两种方式一致
?

三种配置方式对比: 1.从对象加载配置: 配置方式灵活, 可复用性强, 但不安全 2.从文件加载配置: 复用性不好, 也不安全, 但是官方推荐用法 3.从环境变量加载: 相对安全, 利于配置敏感信息, 推荐使用

3.2.Flask路由定义

# 路由定义
Flask的路由为装饰器实现的, 语法及参数如下:
@app.route(url, method=[....], endpoint="...")
def index():
 ? ?pass
?
# 参数:
- URL: 路由路径
- method: 视图允许的请求方法, 如不指定method, 则默认只允许GET请求访问视图
- endpoint: 端点, 可以视为路由别名, 如果endpoint不指定, 则默认endpoint的值为视图函数名
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:25:47  更:2021-10-23 12:28:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:05:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码