您的位置:首页 > 编程语言 > Go语言

Django1.8使用小结

2015-10-31 20:53 330 查看
最近用了一下Django1.8,表示这是我用的第一个Web框架,但感觉这个框架非常好,写起来很方便,第三方库也很齐全。顺便说一句,我用的是Python3,以我小小的经验来看Python3的已经有足够多的第三方库的支持,目前有个人或团队维护的库都基本上支持Python3,没有人维护的第三方库也能找到代替品,所以如果你是新人,我会推荐用Python3进行Django的开发。

言归正传,开始谈谈实际的东西。从settings开始吧!在settings中,
TIME_ZONE
设置默认是
'UTC'
,如果你的应用与时间无关,那倒无关紧要,如果你的网站需要处理一些与时间相关的任务,比如说定时处理数据库,那么你最好把它改成
'Asia/Shanghai'
,这样Djnago里的时间就会是东八区的时间,与我们现在电脑上的时间一致。另外一个与本地化相关的就是Django开启Admin站点功能时网页上的文字,如果你在
MIDDLEWARE_CLASSES
中添加一个中间件
'django.middleware.locale.LocaleMiddleware'
,那么网页上的文字就是中文的。提到了admin,就顺便再说一个第三方应用,它能够美化Admin界面,它就是
django-admin-bootstrapped
,用pip就能安装,用起来也很方便,这里就不多说,自行百度就能解决。

再说一下Django的manage.py这个文件,在django开发中,基本离不开这个文件的支持,如果你之前看过《The Django Book》,那你可能会发现manage.py关于数据库的部分命令有了变化,在Django1.8里,要用
python3 manage.py makemigrations
python3 manage.py migrate
来同步数据库表,执行完前一条命令,并不改变数据库只是在你的APP的migrations目录下建立一些文件,其中的内容就是你的sql语句,后一条命令才真的在数据库中建立表格。如果你后期要修改数据库的表格,也可以通过这两条命令实现,当然也有可能不行(放心,Django的提示会告诉你你想知道的一切,所以不必在这里纠结),具体视你修改的情况而定。补充一下,这两条命令后面可以指定APP的名字。

再谈一下我在编写views中的代码时的一个发现。大家一定对url中的“?“不会感到陌生,问号的后面是用“&“链接的参数,这些参数的值都是字符串类型,所以不需要引号特意声明。当然我想说的不是这个,想象一下,如果你的网站被要求接受一个已POST方式提交的数据,其中请求的URL中带有如上所说的参数,那么URL中的参数在Django里应该在POST字典里提取还是GET字典里提取呢?答案是用GET字典。(好吧,我承认,我是个初学者,连这都不知道。)因为Web开发中,在URL中“?“之后的参数是用GET方式提交过来的,所以虽然请求用了POST方法(因为request.method是“POST“,而实际请求者也的确声明用POST方式),但URL中的参数仍然用GET字典获得。这也说明到底使用Django中的request提供的哪个字典,不仅仅取决于提交的方法,更关键是数据的位置。据说request有一个REQUEST字典可以获取POST或GET字典中的内容,不过从来没试过。谈到这里,又顺便说一下,如果POST提交过来的不是表单数据,那么应该用request.body来获得提交内容,request.body是字节类型,所以大家使用的时候记得解码成对应的字符串。

最后提点建议,对于Django的初学者来说最好把First steps中的tutorial部分看看,会让你知道很多做一个入门级Django开发者的基本知识。还有就是,如果网上找不到的,多看看文档,毕竟网上的Django资料大部分比较老,Django版本之间也略有不同,有时跟着做也不一定对,看英文文档虽然烦了点,好在文档讲的很清楚,如果遇上那种不清不楚的英文文档,那才叫做倒霉呢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: