zoukankan      html  css  js  c++  java
  • 用 Flask 来写个轻博客 (2) — Hello World!

    目录

    前文列表

    用 Flask 来写个轻博客 (1) — 创建项目

    扩展阅读

    Flask 扩展

    实现最简单的 Flask 应用

    创建 config.py 文件

    该文件是整个 Flask 应用程序的配置文件,定义我们常用的配置类 Config/ProdConfig/DevConfig

    class Config(object):
        """Base config class."""
        pass
    
    class ProdConfig(Config):
        """Production config class."""
        pass
    
    class DevConfig(Config):
        """Development config class."""
        # Open the DEBUG
        DEBUG = True

    创建 main.py 文件

    该文件是 Flask 应用的核心,也是程序的入口

    from flask import Flask
    from config import DevConfig
    
    app = Flask(__name__)
    
    # Get the config from object of DecConfig
    # 使用 onfig.from_object() 而不使用 app.config['DEBUG'] 是因为这样可以加载 class DevConfig 的配置变量集合,而不需要一项一项的添加和修改。
    app.config.from_object(DevConfig)
    
    # 指定 URL='/' 的路由规则
    # 当访问 HTTP://server_ip/ GET(Default) 时,call home()
    @app.route('/')
    def home():
        return '<h1>Hello World!</h1>'
    
    if __name__ == '__main__':
        # Entry the application 
        app.run()

    使用 Flask Script

    flask-script 是 Flask 的一个扩展,它能够创建指令,并且让这些指令在 Flask 的应用上下文中执行,可以达到修改 Flask 对象的目的。
    除此之外,flask-script 还能够启动 Flask 开发环境服务器,和开启包含有应用上下文的 Python 指令行。

    (env) [root@flask-dev JmilkFan-s-Blog]# pip install flask-script
    (env) [root@flask-dev JmilkFan-s-Blog]# pip freeze > requirements.txt

    NOTE: 当我们需要安装一个支持 Flask 应用的软件时,我们都应该进入到 virtualenv 中,并且将新安装的软件记录到 requirements.txt 文件中。

    创建 manage.py 文件

    # import Flask Script object
    from flask.ext.script import Manager, Server
    import main
    
    # Init manager object via app object
    manager = Manager(main.app)
    
    # Create a new commands: server
    # This command will be run the Flask development_env server
    manager.add_command("server", Server())
    
    @manager.shell
    def make_shell_context():
        """Create a python CLI.
    
        return: Default import object
        type: `Dict`
        """
        # 确保有导入 Flask app object,否则启动的 CLI 上下文中仍然没有 app 对象
        return dict(app=main.app)
    
    if __name__ == '__main__':
        manager.run()

    NOTE: 通过 manager.py 来执行命令行是十分有必要的,因为一些 Flask 的扩展只有在 Flask app object 被创建之后才会被初始化,所以非常依赖于应用上下文的环境,在没有 Flask app object 时,直接运行默认的 Python CLI 会导致这些 Flask 扩展返回错误。

    使用 manage 来运行开发环境服务器

    [root@flask-dev JmilkFan-s-Blog]# python manage.py server
    /usr/lib/python2.7/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.script is deprecated, use flask_script instead.
      .format(x=modname), ExtDeprecationWarning
     * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
     * Restarting with stat
    /usr/lib/python2.7/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.script is deprecated, use flask_script instead.
      .format(x=modname), ExtDeprecationWarning
     * Debugger is active!
     * Debugger pin code: 338-883-928

    确保 manage 的上下本中导入了 app 对象

    [root@flask-dev JmilkFan-s-Blog]# python manage.py shell
    /usr/lib/python2.7/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.script is deprecated, use flask_script instead.
      .format(x=modname), ExtDeprecationWarning
    
    In [1]: app
    Out[1]: <Flask 'main'> 
    
    In [2]: type(app)
    Out[2]: flask.app.Flask  # app 对象就是 class flask.app.Flask  的实例化对象
    

    使用浏览器来访问 Flask 应用

    这里写图片描述

  • 相关阅读:
    安装HyperV后VirtualBox打开故障
    TortoiseGit或TortoiseSVN在软件或系统更新后图标丢失的一个解决办法
    WSL2 Ubuntu1604 安装 GUI图形库 和 Qt Creator
    时序约束(小梅哥)
    FPGA加速
    吴恩达机器学习笔记
    Neural Network and Deep Learning 笔记【第二章;反向传播算法如何⼯作】
    Tcl学习记录
    Neural Network and Deep Learning 笔记【第一章;手写数字识别】
    操作符重载
  • 原文地址:https://www.cnblogs.com/jmilkfan-fanguiju/p/7532293.html
Copyright © 2011-2022 走看看