1、建立django工程:
运行: django-admin.py startproject hello
可以查看建立的工程文件:
__init__.py:可以向Python编译器表明当前文件夹下的内容是Python工程模块。
manage.py:Python脚本文件与Django的命令行工具django-admin.py配合,可以对建立的工程进行管理配置。
settings.py:Django工程的配置文件,与工程相关的工程模块和数据库全局配置信息都在settings.py中设置。
urls.py:负责配置URL的地址映射以及管理URL的地址格。
2、建立APP:
django的环境里,一个project可以有很多个application,这个一个project下的application就能共用一套环境设置。
修改 hello/settings.py
出现如下属性时请对照修改,需要添加的为粗体部分,可选为蓝色。
[root@htuidc hello]# vi hello/settings.py
import os
PROJECT_DIR=os.path.dirname(__file__)
‘ENGINE’ : 'sqlite3',
‘NAME’ : 'hello.sqlite3',
LANGUAGE_CODE = 'zh-cn'
#下面这一行可选,若这样填,请在hello下建立static空文件夹
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'static')
#下面这一句添加在TEMPLATE_DIR = ( 下
os.path.join(PROJECT_DIR, 'template'),
#下面两句添加在INSTALLED_APPS = (的最后
#没有下面这一句将无法进入admin页面
'django.contrib.admin',
'hello.blog',
#用 sqlite3 作为数据库,产生一 hello.sqlite3 的数据库保存数据
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'hello.sqlite3', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
...
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'static')
...
#设定 template 目录:
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, 'template'),
)
)INSTALLED_APPS = ( ...
'django.contrib.admin',
'hello.blog', # 这个稍后产生,其实就是在hello目录下新建app
)
2、正式创建blog的app:
运行:python manage.py startapp blog
在hello/blog/models.py里添加model,这些信息将为django创建数据库提供依据:
[root@htuidc hello]# vi blog/models.py
from django.db import models
from django.contrib import admin
# Create your models here.
class Category(models.Model):
name = models.CharField(max_length=32)
def __unicode__(self):
return self.name
class Admin:
pass
class Article(models.Model):
title = models.CharField(max_length=64)
published_at = models.DateTimeField('date published')
content = models.TextField()
category = models.ForeignKey(Category)
def __unicode__(self):
return self.title
class Admin:
pass
admin.site.register(Category)
admin.site.register(Article)
3、建立数据库
运行:python manage.py sql blog
运行:python manage.py syncdb
后者会建立管理者帐号,设置密码等
4、修改:hello/urls.py 去掉某些注释增加一个url映射)
[root@htuidc hello]# vi hello/urls.py
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'hello.views.home', name='home'),
# url(r'^hello/', include('hello.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
(r'^blog/', include('hello.blog.urls')), ##添加的映射
)
hello/blog下创建urls.py,并填入如下代码:
from django.conf.urls.defaults import *
from hello.blog.models import Article
info_dict = {
'queryset': Article.objects.all(),
}
urlpatterns = patterns('',
(r'^$', 'django.views.generic.list_detail.object_list', info_dict),
(r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),
)
5、管理添加到admin配置界面
这里的管理块是指Category和Article
打开hello/blog下的models.py
添加如下代码:
from django.contrib import admin
admin.site.register(Category)
admin.site.register(Article)
Category和Article刚好就是已经存在与models.py的两个class,这样,django后台中才会出现对Category和Article这两个模块的管理界面。
6、运行 python manage.py runserver,浏览器打开 http://localhost:8000/admin/ 就有可用的前台了
本文出自 “galean” 博客,请务必保留此出处http://galean.blog.51cto.com/7702012/1302749

