Flask的环境配置
Flask
django是大而全,提供所有常用的功能
flask是小而精,只提供核心功能
环境配置
为了防止 django和 flask环境相互冲突,可以使用 虚拟环境分割开
pip install virtualenv virtualenvwrapper-win # 安装虚拟环境基本的依赖包
mkvirtualenv flask # 创建一个叫 flask的虚拟环境
deactivate # 退出当前虚拟环境
rmvirtualenv flask # 删除名叫 flask的虚拟环境
workon flask # 进入虚拟环境flask
pip install -r requirements.txt # 在虚拟环境中安装flask必备的包
基本流程
配置项可以参考 官方 文档
创建
flaskAPP定义视图函数
对视图函数配置路由
使用装饰器,配置路由
调用app的方法
add_url_rule对视图函数配置路由
运行APP
from flask import Flask
# __name__ 当前 文件的名字
# __file__ 当前 文件的路径
# 1. 创建flask的app
app = Flask(__name__)
# 2.1 创建视图函数,利用装饰器可以配置路由
@app.route('/')
def hello():
return "hello Flask"
# 2.2.1 创建视图函数
def two():
return 'two page'
# 2.2.2 利用app的方法对视图函数添加路由
app.add_url_rule('/two', view_func=two)
if __name__ == '__main__':
# 3. 运行APP
app.run()项目配置
配置文件
通过专门的配置文件,读取配置项,适用于配置项较多
settings.pyclass Config(object):
DEBUG = True主模块
import os
from flask import Flask
from settings import Config
app = Flask(__name__)
# app.config.from_object('settings.Config')
app.config.from_object(Config)
@app.route('/')
def hello():
return "hello Flask"
if __name__ == '__main__':
app.run()工厂模式
如果在一个函数中 创建对象,那么就可以创建多个实例。
那么这样做有什么用呢?
用于测试。可以针对不同的情况使用不同的配置来测试应用。
用于多实例,如果你需要运行同一个应用的不同版本的话。当然你可以在服务器上 使用不同配置运行多个相同应用,但是如果使用应用工厂,那么你可以只使用一个 应用进程而得到多个应用实例,这样更容易操控。
app/settings.pyclass Config(object):
# 配置项在flask文档中已经规定好
DEBUG = Trueapp/__init__.pyfrom flask import Flask
from .settings import Config
def create_app():
# 1. 创建app对象
app = Flask(__name__)
# 2. 导入配置类
app.config.from_object(Config)
# 3. 返回 flask对象
return app
主模块
main.py# 1. 导入工厂函数
from app import create_app
# 2. 生成APP
app = create_app()
@app.route('/')
def hello():
return "hello Flask"
if __name__ == '__main__':
# 3. 启动flask服务
app.run(host='0.0.0.0', port=7000, debug=True)
Flask的环境配置的更多相关文章
- Python Flask 多环境配置
Python里取配置文件的时候,之前是使用的ini文件和python里configparser 模块: 可参考:https://www.cnblogs.com/feeland/p/4514771.ht ...
- 【flask】环境配置-python-dotenv的使用
[自动发现程序实例] 一般来说,在执行flask run命令运行程序前,我们需要提供程序实例所在模块的位置 . Flask会自动探测程序实例,自动探测存在下面这些规则: 从当前目录寻找app.py和w ...
- windows下跑python flask,环境配置
首先声明一下,我安装的是python 2.7. 第一步:下载easy_setup.py 下载地址:https://pypi.python.org/pypi/setuptools 这个下载地址真心难找, ...
- gunicorn flask nginx环境配置
防火墙端口设置****修改后要重启生效(有时在控制面板中设置80端口无法生效) /etc/init.d/iptables statusservice iptables stopfirewall-cmd ...
- Python flask中的配置
当你开始学习Flask时,配置看上去是小菜一碟.你仅仅需要在config.py定义几个变量,然后万事大吉. 然而当你不得不管理一个生产上的应用的配置时,这一切将变得棘手万分. 你不得不设法保护API密 ...
- Flask:文件配置方式实践及其中的各种问题记录
Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2, 提示: 1.请查看本文后面的“18-07-17 11:18重大纠正” ! 2.flask run命令运行时传入参数 ...
- Flask开发环境搭建
基础准备 Python 3.6.5 Conda Visual Studio Code 虚拟环境 创建虚拟环境 conda create -n flask 激活虚拟环境 activate flask 关 ...
- 数据分析R&Python-Rpy2包环境配置
Rpy2环境配置 最近想将R整合到以flask为后端框架的web系统中,在服务器端做数据统计分析.需要将R语言整合到Python中,发现Python中的Rpy2可以调用R语言,所以花了一些时间配置了一 ...
- Python学习之旅:使用virtualenv创建Python环境及PyQT5环境配置
一.写在前面 从学 Python 的第一天起,我就知道了使用 pip 命令来安装包,从学习爬虫到学习 Web 开发,安装的库越来越多,从 requests 到 lxml,从 Django 到 Flas ...
随机推荐
- Vuex的同步异步存值取值
1. vue中各个组件之间传值 1.父子组件 父组件-->子组件,通过子组件的自定义属性:props 子组件-->父组件,通过自定义事件:this.$emit('事件名',参数1,参数2, ...
- vim编辑器设置
由于ubantu自带的vi编辑器并不好用,而开发一般使用vim编辑器,vim需要自己安装(sudo apt-get install vim 即可安装),但是默认的设置使用起来很不舒服,因此可以通过修改 ...
- openswan专栏序言
openswan专栏序言 "一杯茶,一包烟,一个bug解一天!!!". 2020年春季,正值新冠病毒在全球肆虐之际,美国的疫情已经相当的严峻,每天仍以3万速度狂奔.而国内的疫情 ...
- 斐波那契数(Java)
斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0,F(1) = 1 F(n) = F(n ...
- Winform EF CodeFist方式连接数据库
直接生成ado.net 实体数据模型挺方便的,但只有一步步的手写代码才能更好的理解EF,在学习asp.net core过程中手写代码已经明白了怎么回事,但实现过程有些麻烦不知道如何记录,但Winfor ...
- c# List集合类常用操作:二、增加
所有操作基于以下类 class Employees { public int Id { get; set; } public string Name { get; set; } public stri ...
- Tars | 第7篇 TarsJava Subset最终代码的测试方案设计
目录 前言 1. SubsetConf配置项的结构 1.1 SubsetConf 1.2 RatioConfig 1.3 KeyConfig 1.4 KeyRoute 1.5 SubsetConf的结 ...
- WPF 过渡效果
http://blog.csdn.net/lhx527099095/article/details/8005095 先上张效果图看看 如果不如您的法眼 可以移步了 或者有更好的效果 可以留言给我 废话 ...
- [转]SpringBoot系列——花里胡哨的banner.txt
Creating ASCII Text Banners from the Linux Command Line In Ubuntu, Debian, Linux Mint etc. $ sudo ap ...
- PHP中比较数组的时候发生了什么?
首先还是从代码来看,我们通过比较运算符号来对两个数组进行比较: var_dump([1, 2] == [2, 1]); // false var_dump([1, 2, 3] > [3, 2, ...