Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog

目录

前文列表

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

用 Flask 来写个轻博客 (2) — Hello World!的更多相关文章

  1. 用 Flask 来写个轻博客

    用 Flask 来写个轻博客 用 Flask 来写个轻博客 (1) — 创建项目 用 Flask 来写个轻博客 (2) — Hello World! 用 Flask 来写个轻博客 (3) — (M)V ...

  2. 用 Flask 来写个轻博客 (37) — 在 Github 上为第一阶段的版本打 Tag

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 第一阶段结语 打 Tag 前文列表 用 Flask 来写个轻博客 (1 ...

  3. 用 Flask 来写个轻博客 (36) — 使用 Flask-RESTful 来构建 RESTful API 之五

    目录 目录 前文列表 PUT 请求 DELETE 请求 测试 对一条已经存在的 posts 记录进行 update 操作 删除一条记录 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 ...

  4. 用 Flask 来写个轻博客 (35) — 使用 Flask-RESTful 来构建 RESTful API 之四

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 POST 请求 身份认证 测试 前文列表 用 Flask 来写个轻博客 ...

  5. 用 Flask 来写个轻博客 (34) — 使用 Flask-RESTful 来构建 RESTful API 之三

    目录 目录 前文列表 应用请求中的参数实现 API 分页 测试 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 Flask 来写个轻博客 (2) - Hello World! 用 F ...

  6. 用 Flask 来写个轻博客 (33) — 使用 Flask-RESTful 来构建 RESTful API 之二

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 构建 RESTful Flask API 定义资源路由 格式 ...

  7. 用 Flask 来写个轻博客 (32) — 使用 Flask-RESTful 来构建 RESTful API 之一

    目录 目录 前文列表 扩展阅读 RESTful API REST 原则 无状态原则 面向资源 RESTful API 的优势 REST 约束 前文列表 用 Flask 来写个轻博客 (1) - 创建项 ...

  8. 用 Flask 来写个轻博客 (31) — 使用 Flask-Admin 实现 FileSystem 管理

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 编写 FileSystem Admin 页面 Flask-A ...

  9. 用 Flask 来写个轻博客 (30) — 使用 Flask-Admin 增强文章管理功能

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 实现文章管理功能 实现效果 前文列表 用 Flask 来写个 ...

  10. 用 Flask 来写个轻博客 (29) — 使用 Flask-Admin 实现后台管理 SQLAlchemy

    目录 目录 前文列表 扩展阅读 Flask-Admin BaseView 基础管理页面 ModelView 实现效果 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 Flask 来写 ...

随机推荐

  1. VMware 虚拟机NAT模式如何设置网络连接,从头到尾全过程~!!

    一.首先查看自己的虚拟机服务有没有开启,选择电脑里面的服务查看: 1.计算机点击右键选择管理  2.进入管理选择VM开头的服务如果没有开启的话就右键开启  二.虚拟机服务开启后就查看本地网络虚拟机的网 ...

  2. leetcode上的一些分治算法

    53- 思路: 95- 思路

  3. 关于自动化测试学习 selenium

    selenium学习路线 配置你的测试环境,真对你所学习语言,来配置你相应的selenium 测试环境.selenium 好比定义的语义---“问好”,假如你使用的是中文,为了表术问好,你的写法是“你 ...

  4. HTML5: HTML5 表单元素

    ylbtech-HTML5: HTML5 表单元素 1.返回顶部 1. HTML5 表单元素 HTML5 新的表单元素 HTML5 有以下新的表单元素: <datalist> <ke ...

  5. 递归中,调用forEach方法问题

    1 function traverse(objNmae,obj,url){ url = url || objNmae; if(typeof obj === "object" ){ ...

  6. leetcode.双指针.633平方数之和-Java

    1. 具体题目 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a^2 + b^2 = c. 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 注 ...

  7. 错误ORA-01110,在已删除数据文件情况下如何删除表空间

    如果先行删除了数据文件,再删除表空间,drop tablespace 会出现如下错误: ORA-01116: error in opening database file 89 ORA-01110: ...

  8. Python之字典推导式

    推导式是个绝妙的东西,列表推导式一出,map.filter等函数黯然失色,自 Python2.7以后的版本,此特性扩展到了字典和集合身上,构建字典对象无需调用 dict 方法. bad numbers ...

  9. SpringData 完全入门指南

    SpringData 笔记 1. 配置项目 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> < ...

  10. svnserve - 使用 `svn' 访问仓库时的服务器

    SYNOPSIS 总览 svnserve [options] DESCRIPTION 描述 svnserve 允许使用 svn 网络协议访问 Subversion 仓库.它可以运行为独立的服务器进程, ...