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.py

    class 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()

    工厂模式

    如果在一个函数中 创建对象,那么就可以创建多个实例。

    那么这样做有什么用呢?

    1. 用于测试。可以针对不同的情况使用不同的配置来测试应用。

    2. 用于多实例,如果你需要运行同一个应用的不同版本的话。当然你可以在服务器上 使用不同配置运行多个相同应用,但是如果使用应用工厂,那么你可以只使用一个 应用进程而得到多个应用实例,这样更容易操控。

    app/settings.py

    class Config(object):
       # 配置项在flask文档中已经规定好

       DEBUG = True

    app/__init__.py

    from 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的环境配置的更多相关文章

  1. Python Flask 多环境配置

    Python里取配置文件的时候,之前是使用的ini文件和python里configparser 模块: 可参考:https://www.cnblogs.com/feeland/p/4514771.ht ...

  2. 【flask】环境配置-python-dotenv的使用

    [自动发现程序实例] 一般来说,在执行flask run命令运行程序前,我们需要提供程序实例所在模块的位置 . Flask会自动探测程序实例,自动探测存在下面这些规则: 从当前目录寻找app.py和w ...

  3. windows下跑python flask,环境配置

    首先声明一下,我安装的是python 2.7. 第一步:下载easy_setup.py 下载地址:https://pypi.python.org/pypi/setuptools 这个下载地址真心难找, ...

  4. gunicorn flask nginx环境配置

    防火墙端口设置****修改后要重启生效(有时在控制面板中设置80端口无法生效) /etc/init.d/iptables statusservice iptables stopfirewall-cmd ...

  5. Python flask中的配置

    当你开始学习Flask时,配置看上去是小菜一碟.你仅仅需要在config.py定义几个变量,然后万事大吉. 然而当你不得不管理一个生产上的应用的配置时,这一切将变得棘手万分. 你不得不设法保护API密 ...

  6. Flask:文件配置方式实践及其中的各种问题记录

    Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2, 提示: 1.请查看本文后面的“18-07-17  11:18重大纠正” ! 2.flask run命令运行时传入参数 ...

  7. Flask开发环境搭建

    基础准备 Python 3.6.5 Conda Visual Studio Code 虚拟环境 创建虚拟环境 conda create -n flask 激活虚拟环境 activate flask 关 ...

  8. 数据分析R&Python-Rpy2包环境配置

    Rpy2环境配置 最近想将R整合到以flask为后端框架的web系统中,在服务器端做数据统计分析.需要将R语言整合到Python中,发现Python中的Rpy2可以调用R语言,所以花了一些时间配置了一 ...

  9. Python学习之旅:使用virtualenv创建Python环境及PyQT5环境配置

    一.写在前面 从学 Python 的第一天起,我就知道了使用 pip 命令来安装包,从学习爬虫到学习 Web 开发,安装的库越来越多,从 requests 到 lxml,从 Django 到 Flas ...

随机推荐

  1. 高并发HHTP实践

    当今,正处于互联网高速发展的时代,每个人的生活都离不开互联网,互联网已经影响了每个人生活的方方面面.我们使用淘宝.京东进行购物,使用微信进行沟通,使用美图秀秀进行拍照美化等等.而这些每一步的操作下面, ...

  2. centos7 shell 计算器 bc 命令

    2021-08-03 1. 安装 yum -y install bc 2. 简介 bc 命令是任意精度计算器语言,通常在 linux 下当计算器使用 类似基本的计算器, 使用这个计算器可以做基本的数学 ...

  3. CSS实用技巧(中)

    前言 我们经常使用CSS,但是却不怎么了解CSS,本文主要对vertical-align.BFC.position中开发过程不怎么注意的特性进行简要总结,从本文中,你将了解到以下内容: vertica ...

  4. Kubernetes 持久化数据存储 StorageClass

    文章链接 PV 和 PVC 模式要先创建好 PV,然后再定义好 PVC 进行一对一的绑定.那么如果遇到大集群,也一一的创建吗?这样来说维护成本很高,工作量大.这个时候就有了 Kubernetes 提供 ...

  5. HashSet的存储原理

    HashSet的底层用哈希散列表来存储对象(默认长度为16的数组),假如: Set set=new HashSet(); set.add(obj); 内部存储过程为:定义h=obj.hashCode, ...

  6. JS_DOM操作之绑定事件

    1 - 静态绑定:直接把事件写在标签元素中 <div id="div" onclick="foo(this)">click</div> ...

  7. 使用Eclipse对weblogic进行远程调试

    一.环境说明 weblogic12c,linux centOS 6.5,eclipse mars. 二.步骤 1.找到weblogic根目录下user_projects/domains/域名/bin/ ...

  8. 硕盟SM-T54(TYPE C转HDMI+VGA+USB3.0+PD3.0)

    硕盟SM-T54是一款TYPE C转HDMI+VGA+USB3.0+PD3.0四口扩展坞,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显示器.电视机或其他显示设备. ...

  9. 从 1 开始学 JVM 系列 | JVM 类加载器(一)

    从 1 开始学 JVM 系列 类加载器,对于很多人来说并不陌生.我自己第一次听到这个概念时觉得有点"高大上",觉得只有深入 JDK 源码才会触碰到 ClassLoader,平时都是 ...

  10. 利用k8s yaml配置文件起一个http能够让外部访问

    1.首先建一个http的Deployment apiVersion: apps/v1 #版本信息 kind: Deployment #文件类型 metadata: #Deployment资源的元数据信 ...