Django程序总结

起因

因为之前学习Python之前就一直听说python是万能的。而且之前又学过PHP和前端,所以对Python WEB开发就一直有很深的兴趣,刚好这次放寒假,而且学校又要求每日打卡,所以就开始了本次的项目:今日校园打卡系统 其实去年疫情在家的时候,单脚本就写好了,也集成了微信推送和邮箱通知。但是随着用的人数增加,每次都要自己去前往数据库修改信息,很麻烦,所以本次就为了解决这个需求,系统轮廓出来了。

开始

从0开始学习django。看了一个简单的实战和一些文档,开始上手!

这里要感谢米修在线提供的免费django DEMO入门:

https://www.bilibili.com/video/BV1KJ41117HL

虽然项目和用到的功能都很少,但是让我对django有了一个初步的认识,再加上之前写过MVC框架的程序(thinkphp),所以对django这种MTV的设计模式操作起来不是特别的难。

就这样,先完成了一个简单的DEMO,也就是爬虫图片展示,不过,没有部署到服务器。对django有了初步学习之后,便开始了本次的项目。

像摸着石头过河一样,一遍写,一边学。学完再回头去优化之前的问题和冗余(非常不推荐这种方式,写到后面会嫌弃前面这样写的自己)

遇到的困难

第一个问题就是:django连接mysql数据库。。。作为一名没什么追求的coder,工具还是用熟悉的才顺手,所以 数据存储方面,直接选择了接触了很多次的mysql。但是在连接数据库时就发生了问题。提示版本不兼容。。。image-20210204104722663

setting.py中 这样填写数据库信息就行了,但是会提示错误。。

解决方案:

在同级的__init__.py文件中添加这样一段代码

		

原因好像是mysqldb不支持python3.x版本。所以需要用pymysql代替

第二个问题就是表单的问题了。

因为我刚开始想的是可以给用户自定义选择 微信提醒、QQ消息、邮件提醒等多种方式来进行推送通知。所以获取表单内容时,就会获取到一个用户勾选的通知方式的数组,但是django的views.py直接使用request.POST['info']获取到的数据仅有最后一条,前面的所有数据都会丢失,其实解决方案也很简单:

		

这就是不看教程的缺点。

其他的还有静态文件配置、登录验证、登录校检等等问题。但自己之前写过类似的登录,所以逻辑处理问题不大,仅仅是堆代码量。

静态文件配置

修改网站的 配置文件 添加下面一段代码。

		

image-20210603224928962

部署

在网上搜了很多部署教程,大多都是原生服务器直接部署,通过nginx映射。对我来说有点超纲了。。。而且全部都是linux环境下。我当前只有一台windows的服务器。。

刚好遇到腾讯云搞活动。432买4年2H4G的服务器,四舍五入等于白送啊!

所以果断出手。搞了台服务器,看了下宝塔的介绍,python项目管理器仅适配了centos7.x,所以给服务器装上了centos7.6的操作系统。再将宝塔配置好环境,添加项目,配置虚拟环境,添加映射。启动!

项目在服务器跑起来了!✿✿ヽ(°▽°)ノ✿

image-20210204110743335

总结

通过本次django项目的从新建文件夹到项目跑在服务器上,中间差不多经历了半个月。。但实际的代码量,几天就足以完成了。。主要原因还是因为

而且中间测试的时候鬼知道我测试了多少次。。

image-20210204110903124

修修改改。。缝缝补补,而且打击最大的是,去年使用微信提醒,微信提醒是可以用的,但是今年因为微信修改了规则,所以导致微信推送直接死掉了。。功能模块我都写好了(mmp!)。QQ消息这边,发现它也改规则了。。。。。

原来是这样的image-20210204111739142

现在变成了这样。所以现在只有邮件推送。。image-20210204111545763

本来还想写短信通知呢。。看了下价格,打扰了,告辞!

因为一些特殊原因,本来项目想开源免费发出来的,感觉可能会有风险。。所以放弃了。。而且本来还想做成多个学校大一统平台,也是感觉风险有点大。所以放弃了。


作者:晚空,如若转载,请注明出处:《django程序总结》