七行代码实现一个flask app

from flask import Flask

app = Flask(__name__)

@app.route('/')
def helloworld():
return 'helloworld' if __name__ == '__main__':
app.run()

app.run()只适合调试,不适合生产环境使用,生产环境应该使用Gunicorn和uWSGI启动


配置管理

  • app.config是flask.config.Config类的实例,该类继承自Python内置数据结构dict,可以使用dict的方式添加配置

    1. app.config['DEBUG']=True
    2. 使用update方法
        app.config.update(
    DEBUG=True,
    SECREY_KEY='HELLOWORLD',
    )
  • 一般项目的配置都统一放在一个settings.py文件中,可以集中管理配置项

   # settings.py
class Develop():
DEBUG = True class Product(): DEBUG = False develop = Develop() product = Product()
   # app.py
from flask import Flask
from settings import develop,product app = Flask(__name__) app.config.from_object(product)
  • 通过文件名加载,了解即可

    • app.config.from_pyfile('settings.py',slient=True)
  • 通过环境变量加载,了解即可
    • app.config.from_envvar('settings_path')

动态url的配置

  • flask中定义了url转换器converter,在使用时需要实际特殊字段标记
  • <name>不指定参数类型or<converter_name:name>指定参数类型
@app.route('/item/<id>/')
def detali(id):
return id

自定义url转换器

  • 继承自BaseConverter
   from werkzeug.routing import BaseConverter

   class CustomConverter(BaseConverter):
def __init__(self,url_map,regex):
super(CustomConverter, self).__init__(url_map)
self.regex = regex
  • 使用
   from utils.custom_converter import CustomConverter

   app = Flask(__name__)

   app.config.from_object(develop)
app.url_map.converters['re'] = CustomConverter # 添加到converter列表中 @app.route('/hello/<re("[1-9]{2}"):cus>/') # re("regex") 定义匹配规则
def custom(cus):
return cus

flask之配置文件的加载和动态url的使用的更多相关文章

  1. ThinkPHP配置文件的加载

    分类: thinkphp(39) 版权声明:本文为博主原创文章,未经博主允许不得转载. 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展 ...

  2. 【log4j2 加载配置文件】 加载配置文件的三种方法

    log4j 2读取的配置文件可以分为三类:src下的配置文件.绝对路径的配置文件.相对路径的配置文件. package com.herman.test; import java.io.File; im ...

  3. 动态库DLL加载方式-静态加载和动态加载

    静态加载: 如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头文件中 #pragma comment(lib ...

  4. 从源码来理解slf4j的绑定,以及logback对配置文件的加载

    项目中的日志系统使用的是slf4j + logback.slf4j作为一个简单日志门面,为各种loging APIs(像java.util.logging, logback, log4j)提供一个简单 ...

  5. 用Go自己实现配置文件热加载功能

    说到配置文件热加载,这个功能在很多框架中都提供了,如beego,实现的效果就是当你修改文件后,会把你修改后的配置重新加载到配置文件中,而不用重启程序,这个功能在日常中还是非常实用的,毕竟很多时候,线上 ...

  6. 配置文件热加载的go语言实现

    通常我们更新应用程序的配置文件,都需要手动重启程序或手动重新加载配置.假设一组服务部署在10台机器上,你需要借助批量运维工具执行重启命令,而且10台同时重启可能还会造成服务短暂不可用.要是更新配置后, ...

  7. ELF文件加载与动态链接(二)

    GOT应该保存的是puts函数的绝对虚地址,这里为什么保存的却是puts@plt的第二条指令呢? 原来“解释器”将动态库载入内存后,并没有直接将函数地址更新到GOT表中,而是在函数第一次被调用时,才会 ...

  8. Struts按着配置文件的加载的顺序,后面文件和前面文件相同的配置,后面的会把前面的文件的值覆盖

    Struts按着配置文件的加载的顺序,后面文件和前面文件相同的配置,后面的会把前面的文件的值覆盖

  9. 3springboot:springboot配置文件(配置文件占位符、Profile、配置文件的加载位置)

    1.配置文件占位符 RaandomValuePropertySourcr:配置文件可以使用随机数     ${random.value}    ${random.int}  ${random.long ...

随机推荐

  1. about service in android

    注意:标红处! A Service is an application component representing either an application's desire to perform ...

  2. POJ 1300 Door Man(欧拉通路)

    题目描写叙述: 你是一座大庄园的管家. 庄园有非常多房间,编号为 0.1.2.3..... 你的主人是一个心不在 焉的人,常常沿着走廊任意地把房间的门打开.多年来,你掌握了一个诀窍:沿着一个通道,穿 ...

  3. ClipboardEvent.clipboardData

    ClipboardEvent.clipboardData https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboa ...

  4. Easyui 页面訪问慢解决方式,GZIP站点压缩加速优化

    1. 静态资源压缩GZIP是站点压缩加速的一种技术,对于开启后能够加快我们站点的打开速度.原理是经过server压缩,client浏览器高速解压的原理,能够大大降低了站点的流量. 详细代码能够參加je ...

  5. Robot Framework 搭建和RIDE(GUI) 的环境

    在windows x64的环境上进行安装,集成Selenium2和AutoIt的libraries,以下安装步骤在win 7,win 8.1,win 10, win 2012 R2上测试通过 1. 下 ...

  6. android TabHost控件

    (一)TabHost控件,默认是在顶部显示的 TabHost是盛放Tab按钮和Tab内容的首要容器, TabWidget(tabs标签)用于选择页面,是指一组包含文本或图标的 ,FrameLayout ...

  7. ubuntu16.04安装flash player

    ubuntu16.04安装flash player sudo apt-get install flashplugin-installer 1 2019: apt-get install browser ...

  8. 能够完成qq信息提醒的代码

    下面这个网址就帮咱们实现了QQ提醒的功能,别被它的外面吓坏,虽然是长的有点恶心,但是它可是一段“神奇代码”. http://qzs.qq.com/snsapp/app/bee/widget/open. ...

  9. 【BZOJ3110】[ZJOI2013]K大数查询(整体二分)

    题目: BZOJ3110 分析: 整体二分模板题-- 先明确一下题意:每个位置可以存放多个数,第一种操作是"加入 (insert) "一个数而不是"加上 (add) &q ...

  10. ACM_ZHANGZHANG喜欢手表

    ZHANGZHANG喜欢手表 Time Limit: 2000/1000ms (Java/Others) Problem Description: ZHANGZHANG刚过生日,收到了好朋友NENGN ...