《Flask Web开发》学习(二)——程序基本结构理解及所遇问题

1.初始化理解

from flask import Flask
app = Flask(_name_)

我们创建一个web App,其目的就是为了能处理来自用户的各种请求(各种URL)。而我们通过一种名为Web服务器网关接口(Web Server Gateway Interface,WSGI)的协议使App能够接收用户各类请求。但是我们不必具体去写关于WSGI的具体程序,在我们安装的flask包中有一个现成的Flask类可以实现上述功能,我们只要用这个类创建一个具体对象就可以了。

2.路由和视图函数理解

@app.route('/')
def index():
    return '<h1>Hello World!'</h1>

我们接收用户的URL后,还要知道这个URL需要运行哪些代码,所以保存了一个URL到Python函数的映射关系。路由就是处理URL和函数之间关系的程序。这里通过修饰器声明路由,@app.route()是调用了flask.app.py文件里面的Flask类的route方法, route() 装饰器告诉 Flask 什么样的URL 能触发我们的函数,但是我们知道route方法是以装饰器的方式使用的,关于@app.route('/')的理解,这篇《Python的Flask框架中@app.route的用法教程》讲的很棒了!

3.启动服务器理解

if _name_ == '_main_':
    app.run(debug=True)

接收了用户请求,也知道要怎么处理这些请求,下面就是启动服务器去进行处理。run() 函数来让应用运行在本地服务器上。 其中 if __name__ =='__main__': 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。其中debug=True作为run()函数的参数是启用了调试支持,这样每次修改代码后就不必手动重启本地服务器,服务器会在代码修改后自动重新载入,并在发生错误时提供一个相当有用的调试器。

4.完整程序调试出现的问题

在本地Git仓库里签出2a这个版本,按要求执行后,无法在页面显示Hello World!字样。原因是2a版本中的hello.py文件里缺少启动服务器的那一句代码。把文件拷贝出来,添加这个代码后单独执行这个修改后的文件显示成功了。不要在原文件里进行修改,因为每次修改都要提交Git,否则会影响后续操作。

猜你喜欢

转载自blog.csdn.net/theShepherd/article/details/86225383