Django学习之个人博客的实现—(2)

今日任务:

1 blog的数据库模型定义

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

项目的源文件已经推送到[email protected]

所以,如果想要参阅源码的请移步 (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

时间: 2024-08-05 20:22:03

Django学习之个人博客的实现—(2)的相关文章

Django学习---多人博客项目(2)

Django学习---多人博客项目(2) ? 上一部分内容完成了博客项目的搭建,以及博客标题和博客内容的展示,熟悉了Django的使用,下面,接着实现用户管理部分功能. 一.自定义模板和静态文件的位置 (1)自定义模板的位置 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 当前文件路径的上两级文件路径--即是根目录 TEMPLATES = [ { 'BACKEND': 'django.templat

Django实战之企业级博客

详情请交流  QQ  709639943 00.Python 从入门到精通 78节.2000多分钟.36小时的高质量.精品.1080P高清视频教程!包括标准库.socket网络编程.多线程.多进程和协程. 00.Django实战之用户认证系统 00.Django实战之企业级博客 00.深入浅出Netty源码剖析 00.NIO+Netty5各种RPC架构实战演练 00.JMeter 深入进阶性能测试体系 各领域企业实战 00.30天搞定大数据爬虫项目 00.零基础实战机器学学习 00.企业级实战

android学习常用资料博客目录

android 技术总结 1.android 系统签名 介绍如何使用源码中的  (testkey:普通APK,默认情况下使用,platform:该APK完成一些系统的核心功能,经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system,shared:该APK需要和home/contacts进程共享数据,media:该APK是media/download系统中的一环.)4种密钥公钥进行签名. 2.MVC ListView 介绍什么是MVC以及MVC在SDK中的使用,

发布 学习进度条 博客要求

学习进度条博客 (总分:10分) 1. 目的 通过每周补充完善进度条,记录你自己学习<软件工程>的历程.收获: 通过学习进度条来跟踪自己的学习状况. 2. 学习进度条撰写要求 标题:学习进度条 内容如下:(详细格式见第3项设计的表格) 学习SE花费时间(小时) 编程代码量 (行数) 发表博客数量 (篇数) 学习到的知识点 (具体列举) 完成时间:每周五7点前完成<学习进度条>博客本周的更新. 3. 用表格表示进度 周次 学习时间 新编写代码行数 博客量(篇) 学到知识点      

Python学习笔记24:Django搭建简单的博客网站(二)

上一节说道如何使用Django创建并运行一个项目,这节说如何添加一个博客应用. 一 项目跟应用的关系 在添加应用之前,先来看看项目与应用之间有什么不同之处呢? 项目是针对一个特定的 Web 网站相关的配置和其应用的组合.一个项目可以包含多个应用. 应用是一个提供功能的 Web 应用 – 例如:一个博客系统.一个公共记录的数据库或者一个简单的投票系统. 应用是"可插拔的":你可以在多个项目使用一个应用,你还可以分发应用,因为它们没有被捆绑到一个给定的 Django 安装环境中. 这样,我

Python学习笔记23:Django搭建简单的博客网站(一)

上一节说了如何下载安装Django,这一节主要将如何使用Django创建运行一个网站. 一 新建工程 命令:django-admin startproject mysite # 有的需要输入:django-admin.py startproject mysite 这是你会发现在当前目录下,生成了一个文件夹mysite,其结构为: mysite/ manage.py mysite/ __init.py settings.py urls.py wsgi.py 其中: manage.py:一个命令行工

python有哪些好的学习资料或者博客?

推荐Full Stack Python 有各种python资源汇总,从基础入门到各种框架web应用开发和部署,再到高级的ORM.Docker都有.以下是Full Stack Python 上总结的一些教程,我拙劣的翻译了以下,并调整(调整顺序并删了部分内容)了一下: 1.无开发经验,初学python 如果你不会其他语言,python是你的第一门语言: A Byte of Python (简明python教程,这个有中文版简明 Python 教程)是非常好的入门教程. Learn Python t

学习资料链接-----博客

Vue.js学习博客:http://www.cnblogs.com/keepfool/p/5619070.html require.js学习博客:http://www.cnblogs.com/lisongy/p/4711056.html

JAVA学习第一周博客

20145333 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 Java平台概论 Java三大平台:Java SE.Java EE与Java ME Java SE的四个组成部分:JVM.JRE.JDK与Java语言 JRE包括Java SE API和JVM,JDK包括Java程序设计语言.JRE和开发工具. 如果要运行Java程序,必须安装JRE:如果要开发Java程序,必须要取得JDK. 第二章 从JDK到IDE JVM是Java程序唯一识别的操作系统,对JVM来说,可执行文