在前面咱们已经陆续学习了六个Django的实例,其中一个来自Django官方的文档,另外五个来自《Django Web开发指南》。舍得介绍的每个实例,都是按照官方文档的标准,力求让你们在根据文章去作本身的实例时,可以按“文”索骥,轻松再现整个实例的制做过程。css
接下来,舍得要介绍一个大型的实例,这个项目叫作Rango,它来自Django圈内口碑甚佳的《How to Tango with Django》一书。事实上,此书就是围绕Rango这一个实例来展开的,并且,做者在介绍实例的时候,尽量按照官方实例的标准来介绍整个制做过程,对学习者帮助甚大。这个实例已被收入到官方的实例库中(见https://code.djangoproject.com/wiki/Tutorials)。html
《How to Tango with Django》并无正式出版,而是以在线文档的方式来分享,你们能够从这里阅读到这本书的内容:http://www.tangowithdjango.com/book/(这是适用于Django 1.5.4版的,Django 1.7版的能够看这里:http://www.tangowithdjango.com/book17/)。python
因为市面上并没有该书的PDF或Epub格式下载,舍得从做者的网站上抓取了html文件,从新整理了版面,将其制做成epub的格式电子书,解决因受网速影响而致使阅读不顺畅的问题。有兴趣的童鞋能够从这里下载:舍得学苑下载中心(此连接为1.7版电子书,据了解,该版本目前还没有正式完成,即仍处于草稿状态,介意的童鞋可下载1.5.4版)sql
《How to Tango with Django》中的实例显然要比舍得以前分享的六个实例要大得多,可是,不要被它的“大”吓到,它仍然只是一个适合初学者入门的实例。童鞋们能够经过这个实例,复习以前学过的内容,此外,还能够学到一些新的技巧,好比用户登陆,Bootstrap,以及更实用的Ajax应用等等。数据库
注意,本实例所用的Django版本为1.7.1,Python版本为3.2,操做系统为Win8。django
1.建立项目和应用浏览器
咱们先来建立本实例的项目,在dos命令提示符下转到Scripts文件夹(如“c:\python32\Scripts”),而后运行以下命令:服务器
$ django-admin startproject rangoproject
而后在dos命令提示符下继续输入以下命令,进入项目文件夹:session
cd rangoproject
接下来开始建立应用,在dos命令提示符下输入命令:app
$ python manage.py startapp rango
命令执行完后,项目根文件夹下会出现一个叫rango的文件夹,应用建立完毕。
关于项目根文件夹:
当你建立好项目时,你会发现其文件夹的结构会是下面这样:
rangoproject/ manage.py rangoproject/ __init__.py settings.py urls.py wsgi.py
这里有两个rangoproject文件夹,咱们把上面一个叫作项目根文件夹,下面一个(和manage.py并列的)叫作项目配置文件夹。
2.创建模型
编辑rango/models.py文件,改为下面这样:
rango/models.py:
from django.db import models class Category(models.Model): name = models.CharField(max_length=128, unique=True) def __str__(self): return self.name class Page(models.Model): category = models.ForeignKey(Category) title = models.CharField(max_length=128) url = models.URLField() views = models.IntegerField(default=0) def __str__(self): return self.title
首先修改rangoproject/settings.py这个文件,找到INSTALLED_APPS这段设置,把它改为下面这个样子:
rangoproject/settings.py:
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rango', )
编辑settings.py的时候,建议顺便修改一下语言和时区的设置,具体的方法请参考:《实战Django:官方实例Part1》
而后在dos命令提示符下运行以下命令:
$ python manage.py makemigrations rango
继续在dos命令提示符下运行命令:
$ python manage.py migrate
这样,数据库就建好了。咱们在实例中(包括以前的六个实例)使用的是Django默认的Sqlite3数据库,数据库文件为db.sqlite3,存放在项目根文件夹下,这一样是默认的设置,你能够在settings.py的DATABASES设置中看到。
4.建立管理员帐号在dos命令提示符下运行以下命令:
$ python manage.py createsuperuser
而后依次输入admin,你的邮箱,输入两次密码,完成建立管理员的操做。
5.在管理界面注册应用编辑rango/admin.py 文件,让它变成下面这个样子:
rango/admin.py:
from django.contrib import admin from rango.models import Category, Page class PageAdmin(admin.ModelAdmin): list_display = ('title', 'category', 'url') admin.site.register(Category) admin.site.register(Page, PageAdmin)
6.启动服务器
在dos命令提示符下运行以下命令:
$ python manage.py runserver
http://127.0.0.1:8000/admin/
而后输入你刚才建立的管理员帐号和密码,登陆管理界面,你能够先尝试添加一些东西,或者,什么都不作。
7.模板和静态文件配置编辑rangoproject/settings.py这个文件,在文件末加入如下内容:
rangoproject/settings.py:
STATIC_PATH = os.path.join(BASE_DIR, 'static') STATICFILES_DIRS = ( STATIC_PATH, ) TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates') TEMPLATE_DIRS = ( TEMPLATE_PATH, ) MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
其中,STATIC_PATH主要用来存放CSS、JS及图片文件,TEMPLATE_PATH用来存放模板文件(项目中全部的模板文件都放在这里,便于管理),MEDIA_ROOT则是用来存放用户上传的图片之类文件。
下面,咱们一一建立上面讲到的文件夹,在项目根文件夹下:
而后在static文件夹下:
咱们来测试一下静态文件的配置,找一张jpg格式的文件,将其命名为rango.jpg(或直接下载这张图片:http://www.tangowithdjango.com/static/rango.jpg),把它放到static/img文件夹下,它的正确路径应该是:
rangoproject/static/img/rango.jpg
在浏览器地址栏内输入:
若是你能看到图片,说明静态文件配置成功了.
8.练习1)更新“Category”模型,加入如下两个属性:views和likes,默认值均为0。
2)更新数据库。
3)学习“官方实例Part2”,若是你以前还没看过的话。
提示:
【未完待续】