您的位置:首页 > 编程语言 > Python开发

python+django实践

2016-05-05 18:26 507 查看
玩了好久python了,现在才做出一个网站来,说起来很惭愧啊,之前一直以为python做科学计算比较强大(主要是不喜欢MATLAB),后来才发现原来python也可以做后端。好了,不水了,说下实现过程。

现在网站普遍采用LAMP(自行Google)来做,L指Linux,A指Apache,M指MySQL,P指PHP,当然也可以指Python或Perl。因为它们都是开源的,故得到了极大的发展,而且还有一种相互兼容性提高的趋势。我这里采用阿里云ECS,Ubuntu系统(LTS 14.04)(阿里云有个学生专享,9.9元每月,交10个月钱可以用12个月,P.S.我不是做广告,的),Apache 2.4.7,数据库是用的python自带的sqlite3,python
2.7.6,django 1.6.10。

我刚接触阿里云的时候,不是特别习惯这种完全无界面的关系,之前本地做的时候,是用eclipse在ubuntu下开发的,界面相当友好,但是阿里云给的服务器1核CPU,1G内存,我之前试过装个桌面,用vnc来可视化,但是这速度呵呵,果断放弃。于是采用putty软件来使用命令行命令,Xftp5软件来传输文件,功能相当强大。

前端,主要用的是免费网站模板上的一个law office模板,当然也改了尼玛巨多东西,主要是CSS布局比较麻烦,我之前写过,写的比较丑,周期还长,现在直接就套用了。后端参考设计自强学堂-django,我之前还问过涂老师问题,他还给我回邮件了,虽然没有起到什么帮助,但是仍非常感谢。

说下细节部分,前端的话,主要是django模板系统的应用:

1. 用{{}} 包围变量,如{{news_caption}},这表示把从数据库里取出来的变量的值插入到HTML页面内。

2. 用{% %}包围的是块标签,如{% for news in news_list %}......{% endfor %},显然变量是有作用范围的,语法与python一致。

尤其要注意的是模板引擎提供过滤器功能,同样的对象经过过滤器后,可呈现出不同的状态,例如时间对象经过过滤器后可呈现不同形态,可以是05/2016,也可以是May.2016. 其次是extends和include的使用,可以代码复用,提高你的开发效率。然后是图片的引用,这个困扰了我一段时间,<img src="{{latest.news_photo.url}}">引用图片。

关于模板系统,可参考django模板系统

后端的话,建立project和app后,主要是在models,views,urls里面写程序(仅限于我)。models是建立数据库,并处理数据库的内容,由于django采用ORM模式操作数据库,故我们不需要直接写SQL语句,直接继承model类即可。urls负责匹配网址URL,并传递到views里面,views负责处理逻辑,从数据库中取出数据,并传给静态HTML文件。

最后是配置到服务器上,权限很重要,权限很重要,权限很重要,重要的事情说三遍。

如果有兴趣请给我发邮件(349273629@qq.com),问问题,或者要源码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: