zoukankan      html  css  js  c++  java
  • Flask从入门到精通之flask扩展

    Flask被设计成可扩展形式,因此并没有提供一些重要的功能,比如数据库和用户认证,所以开发者可以自由选择最适合程序的包,或者按需求自行开发。社区成员开发了大量不同用途的扩展,如果这还不能满足需求,你还可使用所有Python 标准包或代码库。为了让你知道如何把扩展整合到程序中,接下来我们将在hello.py 中添加一个扩展,使用命令行参数增强程序的功能。

    使用Flask-Script支持命令行选项

    Flask 的开发Web 服务器支持很多启动设置选项,但只能在脚本中作为参数传给app.run()函数。这种方式并不十分方便,传递设置选项的理想方式是使用命令行参数。

    Flask-Script 是一个Flask 扩展,为Flask 程序添加了一个命令行解析器。Flask-Script 自带了一组常用选项,而且还支持自定义命令

    Flask-Script 扩展使用pip 安装:

    pip install flask_script
    

    下面的例子显示了把命令行解析功能添加到hello.py 程序中时需要修改的地方

    from flask import Flask
    from flask.ext.script import Manager
    app = Flask(__name__)
    manager = Manager(app)
    
    @app.route('/')
    def index():
    	return '<h1>hello,flask</h1>'
    
    if __name__ == '__main__':
    	manager.run()
    

    专为Flask 开发的扩展都暴漏在flask.ext 命名空间下。Flask-Script 输出了一个名为Manager 的类,可从flask.ext.script 中引入。这个扩展的初始化方法也适用于其他很多扩展:把程序实例作为参数传给构造函数,初始化主类的实例。创建的对象可以在各个扩展中使用。在这里,服务器由manager.run() 启动,启动后就能解析命令行了

    运行python hello.py,会出现一下消息

    usage: hello.py [-?] {shell,runserver} ...
    
    positional arguments:
      {shell,runserver}
        shell            在flask应用上下文中运行python shell
        runserver       运行flask开发服务器app.run()
    
    optional arguments:
      -?, --help         显示帮助信息并退出
    
    

    顾名思义,runserver 命令用来启动Web 服务器。运行python hello.py runserver 将以调试模式启动Web 服务器,但是我们还有很多选项可用:

    usage: hello.py runserver [-?] [-h HOST] [-p PORT] [--threaded]
                              [--processes PROCESSES] [--passthrough-errors] [-d]
                              [-D] [-r] [-R] [--ssl-crt SSL_CRT]
                              [--ssl-key SSL_KEY]
    
    Runs the Flask development server i.e. app.run()
    
    optional arguments:
      -?, --help            show this help message and exit
      -h HOST, --host HOST
      -p PORT, --port PORT
      --threaded
      --processes PROCESSES
      --passthrough-errors
      -d, --debug           enable the Werkzeug debugger (DO NOT use in production
                            code)
      -D, --no-debug        disable the Werkzeug debugger
      -r, --reload          monitor Python files for changes (not 100% safe for
                            production use)
      -R, --no-reload       do not monitor Python files for changes
      --ssl-crt SSL_CRT     Path to ssl certificate
      --ssl-key SSL_KEY     Path to ssl key
    

    --host 参数是个很有用的选项,它告诉Web 服务器在哪个网络接口上监听来自客户端的连接。默认情况下,Flask 开发Web 服务器监听localhost 上的连接,所以只接受来自服务器所在计算机发起的连接

  • 相关阅读:
    对我最重要的三个老师
    究竟 javascript 错误处理有哪些类型?
    前端小白凭什么杀进 BAT?
    金九银十,换工作热潮来临!
    适用于Java开发人员的SOLID设计原则简介
    在5分钟内将Spring Boot作为Windows服务启动
    Redis中的Java分布式缓存
    Arrays工具类详解
    SpringBoot整合redis
    java 数组用法详解
  • 原文地址:https://www.cnblogs.com/senlinyang/p/8341886.html
Copyright © 2011-2022 走看看