七行代码实现一个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

最新文章

  1. 【搬砖】安卓入门(4)- Java开发编程基础--数组
  2. 十一个行为模式之观察者模式(Observer Pattern)
  3. 一些Layout的坑。坑死我自己了
  4. CentOS6.5 本地源搭建Ceph
  5. [Prodinner项目]学习分享_第一部分_Model层
  6. 4、时间同步ntp服务的安装于配置(作为客户端的配置)
  7. C# 从excel里面复制的1万6千多条记录粘贴到FCKeditor里面,点保存的时候,保存不了,页面没有反应
  8. Yii2提示信息设置方法
  9. PHP 图片文件上传代码分享
  10. The method getContextPath() is undefined for the type ServletContext
  11. SQL 刪除
  12. componentsJoinedByString 和 componentsSeparatedByString 的方法的区别
  13. 【转】Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
  14. 好IT男不能“淫”-谈IT人员目前普遍存在的“A情绪”
  15. JNI设置C++与java的结合(2)
  16. C#2.0导航
  17. vue.js 视频教程
  18. Python学习—数据库篇之pymysql
  19. PHP实现邮件的自动发送
  20. spring各版本jar包和源码

热门文章

  1. TCP传输工作原理
  2. ERROR (ConnectionError): HTTPConnectionPool (Caused by &amp;lt;class &amp;#39;socket.error&amp;#39;&amp;gt;: [Errno 111] Connecti
  3. HDU - 3631 Shortest Path(Floyd最短路)
  4. java学习笔记:Eclipse打开现有项目
  5. abstract (C# Reference)
  6. JZOJ 5791 阶乘 —— 因数
  7. residual sum of squares(ESL 读书笔记)
  8. Coursera Algorithms week3 快速排序 练习测验: Decimal dominants(寻找出现次数大于n/10的元素)
  9. django入门与实践 3-1 环境搭建
  10. 【WIP】客户端JavaScript&#160;DOM