内容正文:
第七章 Flask基本操作
案例一:建立最简单的网页
from flask import Flask #导入FLask框架模块
app = Flask(__name__) #创建应用实例
@app.route('/') #路由
def index(): #视图函数
return '这是我的第一个网页程序!' #返回网页内容
if __name__ == '__main__':
app.run() #运行Web服务器
#代码分析
1.上述代码制作了一个最基础的网页,代码第一行导入Flask框架模块,第二行用Flask类创建了一个应用实例对象app,这个app就是一个web服务器。
2.代码第三行到第五行创建了一个路由和视图,这里先解释一下路由和视图的关系。
我们把从服务器里找网页的过程类比称从图书馆里找书:服务器等价为图书馆;网页等价为书页;那么从图书馆的某个书架的某本书里找到书页的过程,就等价为从服务器里找到网页的过程,这个过程被称为路由。视图则是书页或网页里具体呈现的内容。
3.路由和视图是成对出现的,而路由与URL相关,如上述代码中设置的就是主目录路由,假设该服务器地址为www.ex.com,当浏览器中输入http://www.ex.com/时,就会运行视图函数。视图函数的函数名与路由无关。
4.最后通过app.run()运行服务器。
控制台输出
服务器设置完毕开始运行后,会在控制台输出当前服务器的URL,当未指定地址时,默认使用127.0.0.1(回环测试地址),端口号默认5000。
当用浏览器打开网页时,Web服务器将受到一条GET请求,在控制台可以看到该请求发起者的IP、时间、请求类型和连接状态(200表示连接正常)
在浏览器中输入http://127.0.0.1:5000/的显示结果
案例二:建立新路由
from flask import Flask, redirect
app = Flask(__name__) #创建应用实例
@app.route('/')
def index():
return '这是我的第一个网页程序!'
@app.route('/hello') #添加新路由
def hello(): #路由对应的视图函数
return '你好!'
@app.route('/index')
def redir():
return redirect('/') #跳转到主目录
if __name__ == '__main__':
app.run()
#代码分析
案例二在案例一的基础上又加了两个二级路由
1. '/hello'路由的视图函数显示内容为'你好!'
2. '/index'路由通过redirect()函数跳转到主目录,即当在浏览器输入http://127.0.0.1:5000/index时会自动跳转到主目录,并显示主目录的内容。
在浏览器输入http://127.0.0.1:5000/hello的显示结果
案例三:在路由中使用变量
from flask import Flask
app = Flask(__name__)
@app.route('/hello') #路由
def hello(): #视图函数
return '你好!'
@app.route('/hello/<name>') #URL内包含变量
def hello_name(name): #路由函数声明变量
return 'hello,%s!'%name #使用变量
if __name__ == '__main__':
app.run(host="0.0.0.0",port=8080)
#代码分析
案例三在案例二的基础上做了一些修改:1.删除了主目录路由;2.新路由'/hello/<name>'中包含了变量name;3.run()函数中设置了host和port的值
控制台输出
(1)服务器的IP地址和端口号都发生了更改,即run()函数中的host用于设置IP地址,当设置为host="0.0.0.0"时,服务器IP和当前计算机IP相同。port用于设置端口号。
(2)当用浏览器打开网页时,发生了404错误。
观察浏览器中的URL发现,由于我们将服务器的主目录页面删除,导致服务器主目录网页丢失。
在浏览器输入http://192.168.193.115:8080/hello/peter的显示结果。
结合代码,我们发现