今日任务:

1 blog的数据库模型定义

2 简单的注册登录功能的实现

项目的源文件已经推送到git@oschina.net.

所以,如果想要参阅源码的请移步 (Fork) http://git.oschina.net/gitlab/Missuor/

Tag: v1.0.0.02 http://git.oschina.net/gitlab/Missuor/tree/v1.0.0.02

首先把昨天的历史遗留问题解决掉.

Hello World

SHA-1: http://git.oschina.net/gitlab/Missuor/commit/64f14dba765ae93d1adf77559416bc438919bcf8

在core文件夹下面新建文件views.py

(新多出来的static文件夹和templates文件夹会在后面说明)

图 1 没啥好说的

图 2 hello_world函数定义

扩展阅读: Writing views
https://docs.djangoproject.com/en/1.7/topics/http/views/#writing-views

图 3 Hello World的url配置

扩展阅读:

URL dispatcher
https://docs.djangoproject.com/en/1.7/topics/http/urls/#url-dispatcher

python manage.py runserver 然后访问 http://127.0.0.1:8000/hello-world/

图 4 Hello World页面

扩展阅读:

https://docs.djangoproject.com/en/1.7/intro/tutorial03/#write-your-first-view

定义Blog数据库模型

源码阅读: http://git.oschina.net/gitlab/Missuor/blob/f32277c3b25c565d9c97c7e582b38b4537c51cc0/blog/models.py

关于Django数据库模型的定义,这里提供几个参考文档的链接地址 Model field reference [1] 和 Model Meta options [2]

图 5 blog的数据库模型

扩展阅读: 

Model field reference
https://docs.djangoproject.com/en/1.7/ref/models/fields/

Model Meta options
https://docs.djangoproject.com/en/1.7/ref/models/options/#model-meta-options

这里补充说明一点昨天漏掉的东西,python manage.py startapp blog过后,激活该app的话必须在settings.py 的INSTALLED_APPS中添加该app的名字,这样blog才能使用.

图 6 settings.py 的INSTALLED_APPS项中激活blog

在项目根路径下载命令行窗口中键入 python manage.py validate 用来检测数据库定义是否通过验证.如图 6-2 所示则为正常

图 6 – 2 检测模型的定义是否正确

定义Blog的views中的几个基本的函数--注册 登录 注销

图 7 blog的views.py函数预定义

图 8 blog的urls.py定义

将blog的URL_conf应用到项目

源码阅读: http://git.oschina.net/gitlab/Missuor/commit/5fafa9be7ea750ee9301900a9d7d1c12020500a8

图 9 在核心urls.py中引入blog是url配置文件

文件路径: http://git.oschina.net/gitlab/Missuor/tree/master/templates/core

图 10 从django自己的admin模板文件中拷贝几个基础模板文件作为自定义模板

图 11 Django默认的模板路径

源码阅读: http://git.oschina.net/gitlab/Missuor/blob/master/templates/core/base.html

图12 定义站点的基本模板文件base.html

扩展阅读:

HTML
http://www.w3school.com.cn/html/index.asp

CSS
http://www.w3school.com.cn/css/index.asp

JavaScript
http://www.w3school.com.cn/js/index.asp

图 13 模板文件继承与重载

扩展阅读:

The Django template language
https://docs.djangoproject.com/en/1.7/topics/templates/#the-django-template-language

图 14 给自己的blog添加几个模板文件

图 15 没啥好说的 装一个需要用到的库pillow

图 16 利用pip安装pillow库

图 17 User的models定义中,有一个ImageField字段是用来盛放用户头像信息的,这就是为什么需要安装pillow库的原因

注册登录注销后台代码实现

源码阅读: http://git.oschina.net/gitlab/Missuor/blob/ae4419578c328c1c413a0ffb1698b782046a99f3/blog/views.py

图 18-0 blog.views.header

注册

图 18 blog.views.register 注册的后台代码

扩展阅读:

View decorators
https://docs.djangoproject.com/en/1.7/topics/http/decorators/#module-django.views.decorators.http

PEP 3129 - Class Decorators
https://www.python.org/dev/peps/pep-3129/

PEP 318 - Decorators for Functions and Methods
https://www.python.org/dev/peps/pep-0318/

登录

图 19 blog.views.login 登录的后台代码

注销

图 20 blog.views.logout 注销的后台代码

子页面首页

图21 blog.views.index 博客的页面首页后台代码

定义用于验证用户的表单

源码阅读: http://git.oschina.net/gitlab/Missuor/blob/3b7c79a11b5384ef674cece3863af375c4e16fb9/blog/forms.py

图 22 blog.forms 博客用户验证的form表单的后台代码

扩展阅读:

Working with forms
https://docs.djangoproject.com/en/1.7/topics/forms/#working-with-forms

成果展示 1 HomePage

成果展示 2 Login

成果展示 -3 Register

我会抽空把代码往这里堆一堆的,方便小伙伴们直接查阅批注^7^.

edit. @MrWho
2015-01-22 1:02

用Django搭建个人博客—(2)的更多相关文章

  1. Django搭建简易博客

    Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...

  2. python关于Django搭建简单博客项目(详解一)

    上一篇我们说了如何搭建简易博客网站,下面我们来进行详细解答.本文没有特定顺序,请结合上一篇和源代码参照学习. 相关源代码和解析请参看:https://github.com/Cheng0829/mysi ...

  3. 用Django搭建个人博客—(1)

    业精于勤荒于嬉,形成于思毁于随. 本阶段的任务小记: 简单介绍一下Django的使用,创建项目和一个app 简单介绍一下Django的settings.py文件的相关配置 整合数据库到自己的博客系统中 ...

  4. python关于Django搭建简单博客项目(教程)

    由于csdn各种django blog博文都有或多或少的bug,所以我决定自己写一篇,先附上教程,详解在另一篇博文里,为了便于大家复制粘贴,本文代码尽量不使用图片. 源代码及解析文章请在我的githu ...

  5. Django 搭建简易博客

    新增一个 APP 博客算是一个功能集,因此我们应将其体现为一个模块.这表现在 Django 应用里则是为其创建一个 APP Package.现在让 manage.py 中的 startapp 闪亮登场 ...

  6. 用Django搭建个人博客—(3)

    今日主题 定义博客文章和评论的的数据库定义 定义操作这几个Model的后台数据 User表 USER_STATUS = ( ('active', u'激活'), ('suspended', u'禁用' ...

  7. Django搭建简易博客教程(四)-Models

    原文链接: http://www.jianshu.com/p/dbc4193b4f95 Django Model 每一个Django Model都继承自django.db.models.Model 在 ...

  8. python关于Django搭建简单博客项目 详解二-setting.py

    这一篇我们来讲解setting.py,具体内容以注释形式写入到下面的setting.py代码中,篇幅所限已把官方所给英文注释删除. 全部源代码和详解请参看http://github.com/Cheng ...

  9. 基于django的个人博客网站建立(一)

    基于django的个人博客网站建立(一) 前言 网站效果可点击这里访问 之前基于hexo和github page搭建过一个博客网页,后来由于换了个系统,感觉弄的有点麻烦也就没有再去管它了,最近偶然从网 ...

随机推荐

  1. Genymotion常见问题汇总(转)

    为什么说是常见问题整合呢,因为我就是Genymotion最悲剧的使用者,该见过的问题,我基本都见过了,在此总结出这血的教训,望大家不要重蹈覆辙.     常见问题1:Genymotion在开启模拟器时 ...

  2. 推荐一个很好的富文本web编辑器UEditor

    前天产品提了一个编辑器的bug,本人找是找到了问题的症结,就是不好改.框架是压缩兼混淆后的代码.查一下,好多年前的框架... 咨询了一个同事有关旧框架的事情,他也建议我升级编辑器并帮忙帮我找了UEdi ...

  3. Android项目svn代码管理问题[转]

    用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在,项目编译就会出问题.用ecl ...

  4. chromium截图实现

    声明:本blog是我自己写的,假设要转载,请注明:come from blog of niba! chromium终于显示是在ContentView上.但通过硬件加速.渲染合成的网页之前是在surfa ...

  5. java String的比较,BOX装箱拆箱,以及面向对象的小代码

    package cn.hncu.day2; public class StringDemo { public static void main(String[] args) { String str1 ...

  6. c# 前端写代码的情况

    <%for(int i=0;i<list_model.Count;i++) { %> <div style=" padding-left:35px;padding-r ...

  7. (转)asp.net基础-HttpModule

    HttpModule是向实现类提供模块初始化和处置事件.当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于H ...

  8. android中ListView控件

    今天学习了ListView控件和页面跳转,下面大致介绍下: 第一步:创建显示内容的文件vlist.xml: <?xml version="1.0" encoding=&quo ...

  9. [分词] C#SegList分词辅助类,帮助类 (转载)

    点击下载 SegList.rar 主要功能如下最新的SegList分词辅助类,帮助类看下面代码吧 /// <summary> /// 类说明:SegList /// 编 码 人:苏飞 // ...

  10. 5 DML语言

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...