构建一个web应用

2019-01-26  本文已影响0人  Mr旺旺

用pip从命令行安装Flask:

flask安装成功

flask开始工作:flask提供了一组模块,可以帮助你构建服务器端web应用,从理论上讲,这是一个微web框架,因为它值提供了完成这个任务所需的最基本的一组技术,这意味着flask的特性没有其它框架那么全面,如django(所有的python web 框架之母),不过flask是轻量级的,规模很小而且易于使用,由于我们的需求不多,只有两个web页面,所以在这里flask作为web框架完全能够胜任。


在python文件夹中新建一个webapp文件夹,里面写一个py文件:

命名为hello_flask

在此文件夹中打开命令窗口,输入下面的指令,启动flask应用:

成功启动

不论我们在哪一个操作系统上运行,从现在开始,都会由flask接管,只要它的内置web服务器完成任何操作,都会在屏幕上显示状态信息。启动之后,flask web服务器会立即确认它已经启动,开始运行并在flask测试web地址(127.0.0.1:5000)和协议端口(5000)上等待为web请求提供服务。

flask上的web服务器已经准备就绪,正在等待,下面使用我们的web浏览器与这个web服务器交互,打开浏览器,键入URL,显示如下:

显示hello_flask文件的功能 对hello_flask源代码着行解释

此时,Flask会启动它的内置Web服务器,并在这个服务器中运行你的Web应用代码。Web服务器接收到指向“/”URL的任何请求时,会响应“Hello world from Flask!”消息,而指向其它URL的请求时会得到一个404“Resource not found”错误消息。要看这里的错误处理,我们可以进行如下操作:

错误处理

终端窗口中运行的Web应用也会用一个适当的消息更新状态:

更新状态

接下来,我们考虑Flask为我们做了什么:它提供了一种机制,利用这种机制你可以执行任何已有的Python函数,并在一个Web浏览器中显示它的输出。

为了向你的Web应用增加更多功能,所要做的只是确认希望将函数与哪个URL关联,然后在完成具体工作的函数上面编写一个适当的@app.route修饰符号。

将webapp文件夹下的hello_flask文件重命名为vsearch4web,开始我们的web构建之旅。

修改源代码为如下(vsearch4web.py)

修改后的源代码

向webapp文件夹中增加所需文件:

webapp文件夹 static文件夹 template文件夹 状态消息截图

下面对目前已构建的web应用进行测试:

/entry

当我们键入任意phrase时,点击do it ,出现以下画面:

出错

如果我们的web应用出现了问题,web服务器会响应一个HTTP状态码。HTTP是允许web浏览器和服务器通信的协议。状态码的含义很明确(具体信息请参考有关文献)。实际上,每个web请求都会生成一个HTTP状态码响应。

这里出现了405状态码,是客户端错误消息:服务器从客户端接收到一个它不理解也无法处理的请求。通常这是客户端的问题。指示客户端使用了这个服务器不允许的一个HTTP方法来发送请求。常见的HTTP方法有get方法post方法。


这里没有指定要支持的HTTP方法,所以flask默认为GET

我们通过修改源代码,使其支持POST方法(支持POST方法则不支持GET方法):

现在只支持POST方法

再次修改vsearch4web源代码,使其打开调试模式:

最后一行做出改变 在命令行重启应用,此时Flask会显示三个新的状态行,它以这种方式告诉你现在已经打开调试模式

既然已经再一次运行,下面再与我们的web应用交互:

然后点击do it 不再出现之前的画面

但是这里出现一个问题,无论你键入什么phrase,返回的结果都是一样的。需要我们重新检查请求/search4 URL时执行的代码:(需要用到request内置对象)

修改后的vsearch4web.py

重新测试:

键入字符串 得到结果

到了这里,生成的输出还不是一个HTML Web页面,它还只是原始数据,作为文本返回给正在等待的浏览器。修改我们的vsearch4web.py,如下

修改后的源代码

再次测试:

得到预期结果

by PengSW_10 on 2019/1/26

上一篇下一篇

猜你喜欢

热点阅读