Python学习笔记6:Web应用
进入21世纪,Web开发相当火热,如果一门语言不支持Web开发,我估计也不好意思说自己强大,今天我们就来探索一下Python在Web开发中的能力。
简单起见这里就沿用《Head first Python》一书中同名章节的案例,不做修改。
本文的最终完整代码已上传到百度盘:
链接:https://pan.baidu.com/s/1MRSL0NkRHxxjcAqxp79rMA
提取码:go7m
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V1的分享
Web框架
Web框架可以理解为Web服务器上处理Http请求的服务,像PHP的最佳伙伴Apache。
Python支持多种Web框架,这里使用的是最一个简单的Web框架:flask。
flask是Python的第三方模块,所以我们需要先安装:
pip install flask --timeout=200
这个模块安装巨慢,我只能说。。。
安装好后我们可以写一个简单的程序来测试web框架:
from flask import Flask
web = Flask(__name__)
@web.route('/')
def hellow():
return "hellow world"
web.run(debug=True)
其中@web.route('/')
是通过函数修饰符@
来重写web.route('/')
以实现对web服务的根节点访问时候的响应逻辑,这里是简单的返回一个字符串。
web.run(debug=True)
是启动框架服务,debug
参数用于指定这是一个测试环境,任何对代码的改动都将重新触发框架服务的自动重启以使得改动生效,否则你改动代码后需要手动重启框架。
现在我们可以通过python运行这个脚本来启动web服务:
python test.py
现在通过浏览器访问这个web应用:
一个最简单的web应用我们就搭建好了,后边来进一步完善它。
我们接下来会实现一个Web应用,一共有两个页面,一个页面用于输入2个字符串,然后检测第一个字符串中包含有哪些第二个字符串中的字符,然后在另一个页面中显示结果。
使用模板
当然我们可以直接在Python代码中加入字符串的方式构建Html页面,但这种方式对维护代码相当不友好,而且也没有遵循Web开发中应该尽量将前端代码与后端代码分离这一原则。
所以我们需要用到模板,如果你使用过PHP开发过Web的话应该不陌生,模板的本质就是通过一些约定好的标签实现在前端页面中嵌入后台代码控制,包括输出数据,循环等。
这里我们将使用flask配套的模板引擎jinjia2
。
我们先建立一个完整的web应用目录:
index.py
将作为web应用的启动文件。static
是存放css等静态资源的目录。- templates将存放模板文件。
本文使用的资源来自《Head first Python》一书附赠的源码,原始下载地址在这里。
这里在百度网盘再上传一份:
链接:https://pan.baidu.com/s/1oCg38Igw03eZzd8gWprXdA
提取码:yzea
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V1的分享
将模板和css文件加入项目目录,现在项目目录长这样:
现在我们编写index.py
,用模板引擎渲染产生html的方式来响应两个页面请求:
from flask import Flask