栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

初识flask

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初识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的值为视图函数名
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/341743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号