美文网首页
构建一个web应用

构建一个web应用

作者: Mr旺旺 | 来源:发表于2019-01-26 21:57 被阅读0次

    用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

    相关文章

      网友评论

          本文标题:构建一个web应用

          本文链接:https://www.haomeiwen.com/subject/vzebjqtx.html