作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai
这是利用 Flask 开发一个网站专题的第一天,完整目录请点击这里
最近学习了一下 Flask 开发 Web,我主要是在 Mac 上面进行学习,使用的 Python 和 Flask 版本是:
Python 3.6.1
Flask 0.12.2
接下来,我们实现一个简单的 Hello World 程序。
我们先在一个目录下,新建一个文件夹 microblog,之后 cd 到这个文件夹后,我们开始为应用程序创建基本的文件结构:
mkdir app
mkdir app/static
mkdir app/templates
mkdir tmp
我们的应用程序包是放置于 app 文件夹中。子文件夹 static 是我们存放静态文件,图片,JS文件以及各种样式文件。子文件夹 templates 显然是存放模板文件。
让我们开始为我们的 app 包创建一个简单的初始化脚本,文件位置是 app/__init__.py:
from flask import Flask
# app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递__name__。
# 让flask.helpers.get_root_path函数通过传入这个名字确定程序的根目录,以便获得静态文件和模板文件的目录。
app = Flask(__name__)
from app import views
上面的脚本简单的创建应用对象,接着导入视图模块,虽然该模块我们还没有编写。
视图是响应来自网页浏览器的请求的处理器。在 Flask 中,视图是编写成 Python 函数。每一个视图函数是映射到一个或多个请求的 URL 。
让我们编写第一个视图函数,文件位置是 app/views.py:
from app import app
@app.route('/')
@app.route('/index')
def index():
return 'Hello World!';
其实这个视图只是返回一个字符串,在浏览器上显示。两个 route 装饰器创建了从网址 / 已经 /index 到这个函数的映射。
能够完整工作的 Web 应用程序的最后一步是创建一个脚本,启动我们的应用程序的开发 Web 服务器。我们把这个脚本设置为 run.py ,文件位置为根目录:
from app import app
app.run(host = '0.0.0.0', port = 8008)
注:因为我直接在阿里云上面编写,所有把 host 设置为了 0.0.0.0,如果你在本地编写,可以把这个参数去掉。
这个脚本简单地从我们的 app 包中导入 app 变量并且调用它的 run 方法来启动服务器。请记住 app 变量中含有我们在之前创建的 Flask 实例。
我们使用 tree
命令来查看一下目录结构,具体如下:
├── app
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ └── views.cpython-36.pyc
│ ├── static
│ ├── templates
│ └── views.py
└── run.py
4 directories, 6 files
最后,我们只需要运行这个脚本就可以运行一整个程序。
python run.py
之后,我们打开浏览器,输入 YOUR_IP:8008,就能看到如下页面:
你也可以在浏览器中输入 YOUR_IP:8008/index
就能看到相同的页面,因为我们在视图文件中定义了这两个路由。
至此,我们学习了怎么利用 Flask 框架去编写 Hello World 程序。