写在前面
最近面试Shanbay
的暑期实习生,在正式开始面试之前要有一个小作业,根据布置的任务做出一个背单词网站Demo,供后面面试官筛选和筛选后的面试提问。
然而作为一个刚入门的纯Java后台,Python很久之前学过一点,但很久不用了,Django不会,Bootstrap不会,Web不会(不过应该会写一个helloworld
页面吧)。一脸懵逼啊。。。
经过十天左右的“奋战”,好歹做出了一个能跑起来的Demo:功能基本完成,逻辑还算完善,不过界面确实丑了一点。压力之下快速学习过这么一套知识,收获颇丰。
特此记录,一方面帮助自己巩固知识点,记录一些踩过的坑;另一方面,希望有相似需求的人能看到这篇文章,少走弯路。
2016-07-11最新消息,挂掉。
细节部分处理太过粗糙,很多部分我是当做作业来做,实现功能即可。放弃了一些编码规范和必要的函数解耦。
总的来说,还是太嫩。
题目介绍
题目
具体要求:XXX。
要求用Python
完成,使用Django
框架和bootstrap
来辅助做页面。
分析
按照以往经验,把整个业务逻辑先划分模块,理清脉络。针对小模块做开发,最终连贯成完整的业务逻辑。
这里就不再根据题目进行具体的分析,通性基本为用户模块和针对具体应用的应用模块。
具体实现根据需求进行增加或者简化即可。
一些感悟
Django
Django
很强大,可以通过简单配置,实现很多强大的功能。比如后台管理系统,之前使用Spring
一个人开发两周、还要有个Web端的小伙伴配合,呈现的效果还不如Django
几行配置。
当然,开发友好也是一方面,代码简单强大,谁用谁知道。
不过相应的,高度封装带来的好处必然也会有对应的缺点。封装程度过高,需要微调的时候,会有束手束脚的感觉;迁移数据库的时候,万一操作不当,应该是再难以修复(血泪史)。
客观问题确实存在一些,不过发挥主观能动性还是可以解决的。
Django的坑
Django
版本之间变化大,操作命令可能会迥异。按照某个教程入门,可能会出现各种因为Django
版本不同而命令不同的问题,对新手的积极性挫伤很大。如之前版本中的syncdb
命令,在本次的Django
1.9.7版本中,已经不适用。现在只提供python managy.py migrate
和python managy.py makemigrations
命令。
因此本文的后续部分,可能也会在某天之后失效。
不过教程的作用不仅限于照本宣科,机械的学习别人给出的每一步。其实某一步出错的时候,可以重试或查阅资料后再解决之,举一反三,触类旁通更重要。必要时推翻重来熟悉一下整体步骤也会收获很大。
参考资料
官方文档自然是最好的选择,不过英文阅读可能会是一些人的障碍。目前中文版的Django book中对应的Django版本距离1.9.7版本差距也较大,不过参照上一小节,很多操作稍作变通即可。从这里学习到很多,活学活用。
另外的其他一些参考资料在本文的最后附录给出,帮助很大,从中学到很多知识。
Bootstrap
至今本人对bootstrap
的掌握仅限于很粗糙的能使用,所以这里也没什么好介绍的。只是简单地使用栅格来做布局。
参考文章:
- 两篇文章帮你入门Django(上)——https://segmentfault.com/a/1190000002447511
- 两篇文章帮你入门Django(下)——https://segmentfault.com/a/1190000002479013
- 虫师:django 快速实现完整登录系统(cookie)——http://www.cnblogs.com/fnng/p/3750596.html
- PYTHON开发入门与实战5-DJANGO模型——http://www.cnblogs.com/haozi0804/p/4489063.html