码迷,mamicode.com
首页 > 其他好文 > 详细

初识Django

时间:2015-05-04 23:42:10      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

参考书目:Django Web开发指南,Django官方文档

环境Windows 8 x64 ,python2.7.9 x32,Django1.8.1

 

因为书中的Django版本似乎是比较老的了,所以这里我参考了官方在线文档完成书中的相关部分,下面记录的就是书中代码在新版中的实现。

 

1.安装等略

2.新建一个项目project

技术分享

 

新建立的项目结构如下:

技术分享

 

3.数据库连接

技术分享

 

4.启动Django开发环境的测试服务器:

技术分享

在浏览器地址栏输入 http://127.0.0.1:8000/来测试是否成功

 

在runserver命令后后可以指定端口号以及IP。

如:

manage.py runserver 8080
manage.py runserver 0.0.0.0:8080

 

当项目中有错误的话一般这个服务器是不会成功启动的,可以借此查看异常问题。

成功的话:

技术分享

5.创建app模块:

技术分享

6.创建app中用到的model:

创建项目需要的model需要在上述文件的models.py中编写继承类:

技术分享

 

7.在项目中加入app模块:

技术分享

 

8.为新建的模块连接数据表:

技术分享

9.刷新数据库

技术分享

10.创建管理员账户:

技术分享

这个将来是为登陆项目主页所需要的验证环节。

 

此时启动测试服务器,在浏览器键入地址http://127.0.0.1:8000/admin/

可以看到:

技术分享

输入刚才设置的用户名和密码就可以登陆控制台了:

技术分享

 

这里没有显示出我创建过的app/blog模块,需要在admin.py中对模块引入并注册

11.注册模块:

技术分享

这时再次转到刚才的界面:

技术分享

成功导入了,现在就可以进入Blog的模块下进行编辑了,点击右侧的Add进入新建一个blog post的界面:

技术分享

随便填写需要的内容就可以了,填写完成之后点击Save就可以保存了:

技术分享

成功建立的界面会显示一个当前建立的post列表:

技术分享

这里出现的问题是名称是默认的,感觉很难看,为了自定义显示的格式,需要下一步操作:

 

12.自定义显示条目:

 

为了在添加的条目中使用模型自定义的规则显示姓名,最简单的方式是在模型类下定义__str__方法返回一个字符串,比如:

技术分享

效果:

技术分享

 

当然也可以自定义条目显示多少个参数:

技术分享

刷新测试服务器之后刷新刚才的页面:

技术分享

 

 

在同样的文件中加入这样一句:

技术分享

这样定义的是创建post的界面的条目排列:

技术分享

 补充,为条目添加标题:(此处项目变更为文档示例的polls项目)

技术分享

效果:

技术分享

  显示/隐藏,只显示条目:

技术分享

效果:

技术分享

其他个性化设置参见官方文档

 

13.关联条目(将Question关联到Choice)

技术分享

显示效果:

技术分享

 

14.定义显示model的html模板 

下面的项目回到Blog项目,为了显示blog的信息到一个页面上,需要自定义一个html模板来支持显示,在blog下建立一个templates目录,并加入一个任意命名的html文件:

技术分享

新建的html文件如下:

index.html

1 {% for post in posts %}
2 <h2>{{ post.title }}</h2>
3 <p>{{ post.timestamp }}</p>
4 <p>{{ post.body }}</p>
5 {% endfor %}

其中夹在{%%}和{{}}中的是执行的代码而不是html的tag。

 

15.定义模板需要的视图变量

看到了上述模板html中出现了一个名为posts的明显外部传入的量,需要我们定义一个views来获取并传递给这个值,标准view定义如下:

技术分享

当然第一个用来获取对象的函数不一,可以根据文档按照需要选用。

 

16.定义URL定向

根据MVC模式原理,此处应有控制层,我认为此处的控制层就是URL定向问题,若要根据URL找到刚才创建的页面

需要在两处做定义,一个定义了如何找到blog,一个在blog中定义了如何找到blog的子views

 

首先是项目的urls:

技术分享

此处表明以blog/为开头的URL需要去blog.urls下面找匹配,这就需要第二个定义

在blog目录下建立urls.py文件:

技术分享

内容如下:

技术分享

 

这样就完成了定义,访问http://127.0.0.1:8000/blog/这个地址,出现的就是按照定义的模板显示的网页:

技术分享

 

通过加载css我们还可以定义他的样式:

技术分享

 

技术分享

 

技术分享

 

效果:

技术分享

背景图片是bing的最近一个壁纸

 

 

这就是昨天晚上和今天的成果。

done.

初识Django

标签:

原文地址:http://www.cnblogs.com/lhyz/p/4474867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!