100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 用 Flask 来写个轻博客 (2) — Hello World!

用 Flask 来写个轻博客 (2) — Hello World!

时间:2022-06-30 06:38:57

相关推荐

用 Flask 来写个轻博客 (2) — Hello World!

Blog 项目源码:/JmilkFan/JmilkFan-s-Blog

目录

目录前文列表扩展阅读实现最简单的 Flask 应用创建 config.py 文件创建 main.py 文件 使用 Flask Script创建 manage.py 文件使用 manage 来运行开发环境服务器确保 manage 的上下本中导入了 app 对象 使用浏览器来访问 Flask 应用

前文列表

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

扩展阅读

Flask 扩展

实现最简单的 Flask 应用

创建 config.py 文件

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

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

创建 main.py 文件

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

from flask import Flaskfrom config import DevConfigapp = 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 objectfrom flask.ext.script import Manager, Serverimport main# Init manager object via app objectmanager = Manager(main.app)# Create a new commands: server# This command will be run the Flask development_env servermanager.add_command("server", Server())@manager.shelldef make_shell_context():"""Create a python CLI.return: Default import objecttype: `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), ExtDeprecationWarningIn [1]: appOut[1]: <Flask 'main'> In [2]: type(app)Out[2]: flask.app.Flask # app 对象就是 class flask.app.Flask 的实例化对象

使用浏览器来访问 Flask 应用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。