Web 开发学习笔记(1) --- 搭建你的第一个 Web Server
简介
Flask 是一个轻量级的 Web 框架, 如果要学习 Web 开发, Flask 非常适合作为我们学习的起点.
通过接下来的这一些列的博客, 我们将学习如何利用 Flask 以及其他工具, 搭建一个简单的网站.
We'll build a web application from scratch. Have fun :)
开发环境
- Ubuntu 16.04
Python 3.5
Flask 1.0.2
命令如下
sudo apt-get upgrade sudo apt-get install python3-setuptools sudo apt-get install python3-dev sudo apt-get install python3-pip sudo pip3 install pip --upgrade sudo pip3 install flask
第一个 server
首先我们创建一个文件夹
webapp
, 并在其中新建一个server.py
文件mkdir ~/webapp cd ~/webapp touch server.py
接着, 我们打开
server.py
, 按照 Flask Quickstart 的示例, 开始编写第一个server
from flask import Flask app = Flask(__name__) @app.route('/', methods=['GET']) # methods 默认是 GET 因此可以简写为如下形式 # @app.route('/') def hello(): return 'Hello' if __name__ == '__main__': app.run(host='0.0.0.0', port=8080, debug=True)
保存文件后, 在
Terminal
中输入如下命令, 即可运行webapp
. 我们在浏览器中输入http://server_ip:8080
即可访问网站, 页面的内容就是Hello
python3 server.py
编写 IndexHandler
在上一节中, 我们使用了
@ decorator
来指定某个路由对应的处理函数, 这样的写法非常方便. 同时, 我们也可以编写我们自己的Handler
来处理各个不同的页面(路径). 比如, 对于首页Index
, 即http://server_ip:8080/
, 我们可以编写一个class IndexHandler
, 注意这是一个MethodView
的子类, 也就是说这是一个View Handler
from flask import Flask from flask.views import MethodView app = Flask(__name__) class IndexHandler(MethodView): def __init__(self, name): print(name) def get(self): return 'It is a GET request' def post(self): return 'It is a POST request' if __name__ == '__main__': app.add_url_rule('/', view_func=IndexHandler.as_view('index')) app.run(port=8080, host='0.0.0.0', debug=True)
根据 flask docs, 传给
as_view()
的参数name
会转发给构造函数, 我们暂时用不到这个参数name
, 但是为了保持命名的一致性, 我们将其设置为Index
保存文件后, 在
Terminal
中输入如下命令, 即可运行webapp
. 我们在浏览器中输入http://server_ip:8080
即可访问网站, 页面的内容是It is a GET request
python3 server.py