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

简介: 目录目录前文列表扩展阅读实现最简单的 Flask 应用创建 configpy 文件创建 mainpy 文件使用 Flask Script创建 managepy 文件使用 manage 来运行开发环境服务器确保 manage 的上下本中导入了...

目录

前文列表

用 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 应用

这里写图片描述

相关文章
|
Linux Python Windows
windows python web flask 编写 Hello World
windows python web flask 编写 Hello World
windows python web flask 编写 Hello World
|
JSON 缓存 关系型数据库
linux python web flask 编写 Hello World
linux python web flask 编写 Hello World
linux python web flask 编写 Hello World
|
数据库 Python JSON
【Flask】Python-Flask快速入门Helloworld
【Flask】Python-Flask快速入门Helloworld
121 1
|
前端开发 Python
【flask入门系列】flask的环境安装以及helloworld程序编写
上一节简单介绍了一下flask,flask跟同类型的web框架相对比具有自由,灵活等特点,是一款轻量级的web框架,接下来,我们通过flask搭建一个helloworld程序来感受一下他的灵活!
245 0
【flask入门系列】flask的环境安装以及helloworld程序编写
|
安全 Python
用 Flask 来写个轻博客 (13) — M(V)C_WTForms 服务端表单检验
目录 目录 前文列表 WTForms WTF 的基础使用 常用的字段类型 fieldsDateField fieldsIntegerField fieldsFloatField fieldsStringField fieldsRadioField fieldsSel...
1701 0
|
Web App开发 Python
用 Flask 来写个轻博客 (14) — M(V)C_实现项目首页的模板
目录 目录 前文列表 实现所需要的视图函数 实现 homehtml 模板 代码分析 实现效果 前文列表 用 Flask 来写个轻博客 (1) — 创建项目 用 Flask 来写个轻博客 (2) — Hello World! 用 Flask 来写个轻博客...
1414 0
|
数据库 Python 关系型数据库
用 Flask 来写个轻博客 (11) — M(V)C_创建视图函数
目录 目录 前文列表 视图函数 在 viewspy 文件中定义视图函数 定义右侧边栏的视图函数 为每一张数据表定义视图函数 前文列表 用 Flask 来写个轻博客 (1) — 创建项目 用 Flask 来写个轻博客 (2) — Hello Wo...
1030 0
|
Web App开发 JavaScript 前端开发
用 Flask 来写个轻博客 (12) — M(V)C_编写和继承 Jinja 模板
目录 目录 前文列表 扩展阅读 使用 Bootstrap 编写 Jinja 模板文件 继承一个模板 前文列表 用 Flask 来写个轻博客 (1) — 创建项目 用 Flask 来写个轻博客 (2) — Hello World! 用 Flask 来写...
1609 0
|
Python 消息中间件 内存技术
用 Flask 来写个轻博客 (10) — M(V)C_Jinja 常用过滤器与 Flask 特殊变量及方法
目录 目录 前文列表 Jinja 中常用的过滤器 default float int lenght title round join tojson truncate escape safe 自定义过滤器 Flask 的特殊变量和方法 config 对象 req...
1437 0
|
JavaScript 前端开发 Python
用 Flask 来写个轻博客 (9) — M(V)C_Jinja 语法基础快速概览
#目录 前文列表 扩展阅读 Jinja 变量名 注释 控制语句 if 语句 循环 过滤器 无参数调用 带参数调用 宏 定义宏 调用宏 结果 兼容 JavaScript 前文列表 用 Flask 来写个轻博客 (1) — 创建项目 用...
1338 0