廖雪峰老师的三本教程都过了一遍,感觉与其他语言比起来还是有挺大不同的,师姐说实战才是学习的最好方式,看完书就做了配套的实战练习。
指路GitHub上完整代码:
1、廖雪峰版本:https://github.com/michaelliao/awesome-python3-webapp/tree/day-11(进度到11天的链接)
2、一位小可爱给了我很多参考,代码和廖雪峰有些不同:https://github.com/leiseraiesecqd/Python3_web/tree/master/My_webapp
3、一位小可爱的blog对我学习这个实战有很大的帮助:https://www.cnblogs.com/AB786883603/archive/2017/06.html
整个过程大概分为三部分,比较可惜的是最后并没有把整个程序跑通就去学QT了
1.安装配置程序环境
#安装配置底层web环境 pip install aiohttp
#配置前端 模版引擎 pip install jinja2 其实对这个模板还有一些疑问,没有深入了解过
#配置数据库连接Pip install aiomysql异步SQL
2.编写webapp后台
2.1编写ORM
对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。
这一部分实际是实现了数据在后台的增删改查
测试数据库时遇到问题,先测试了pymysql得出解决方案:
之后测试aiomysql,数据没有提交到数据库内,经调试发现错误:
a、缺少一个主函数的入口
b、在定义execute()\save()方法时,我们使用了async,在调用时就不能使用yield from 要使用await
2.2web框架
教材上说,因为aiohttp的框架太底层了,需要在上面封装一个更高级的框架。
#编写一个URL处理函数大概需要几步: #第一步,添加协程装饰器 #第二步,对request参数进行操作,以获取相应的参数 #第三步,就是构造Response对象并返回。
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作(?)
总结一下,具体代码部分,有很多都不是很懂,特别是Ins、ReHandler两个部分。
3.功能测试
但是测试是数据没有办法从前端传到后台,之前也没有用过vue的前端架构,所以找不到是前端没有传过来还是后台抛出了未知错误,待以后继续测试。
整个调试的过程还是比较有意思,除了用GoogleChrome本身自带的调试器查看各种数据的传递以外,还认识了一个新的前端测试工具Postman,如果以后向前端方向发展的话,这个工具可能还会用到,检验数据传递还是比较好用的。