django的后臺我們只要加少些代碼,就可以實現(xiàn)強大的功能。
與后臺相關(guān)文件:每個app中的 admin.py 文件與后臺相關(guān)。
下面示例是做一個后臺添加博客文章的例子:
一,新建一個 名稱為 zqxt_admin 的項目
1 | django-admin.py startproject zqxt_admin
|
二,新建一個 叫做 blog 的app
1 2 3 4 5 | cd zqxt_admin
python manage.py startapp blog
|
注意:不同版本的 Django 創(chuàng)建 project 和 app 出來的文件會有一些不同
三,修改 blog 文件夾中的 models.py
1 2 3 4 5 6 7 8 9 10 | from django.db import models
class Article(models.Model):
title = models.CharField(u'標題', max_length=256)
content = models.TextField(u'內(nèi)容')
pub_date = models.DateTimeField(u'發(fā)表時間', auto_now_add=True, editable = True)
update_time = models.DateTimeField(u'更新時間',auto_now=True, null=True)
|
四,把 blog 加入到settings.py中的INSTALLED_APPS中
1 2 3 4 5 6 7 8 9 10 | INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
)
|
提示:INSTALLED_APPS 是一個元組,每次加入新的app的時候,在后面都加一個逗號,這是一個好習(xí)慣。
五,同步所有的數(shù)據(jù)表
1 2 3 4 5 6 | python manage.py makemigrations
python manage.py migrate
注意:Django 1.6.x 及以下的版本需要用以下命令
python manage.py syncdb
|
可以看到:
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table blog_article
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'tu'): tu
Email address:
Password:
Password(again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
如果是 Django 不主動提示創(chuàng)建管理員(Django 1.9不提示)用下面的命令創(chuàng)建一個帳號
1 | python manage.py createsuperuser
|
六,修改 admin.py
進入 blog 文件夾,修改 admin.py 文件(如果沒有新建一個),內(nèi)容如下
1 2 3 4 5 | from django.contrib import admin
from .models import Article
admin.site.register(Article)
|
只需要這三行代碼,我們就可以擁有一個強大的后臺!
提示?urls.py中關(guān)于 admin的已經(jīng)默認開啟,如果沒有,參考這里。
七,打開 開發(fā)服務(wù)器
1 2 | python manage.py runserver
|
訪問 http://m.lncdfzh.com.cn:8000/admin/ 輸入設(shè)定的帳號和密碼, 就可以看到:

點擊 Articles,動手輸入 添加幾篇文章,就可以看到:

我們會發(fā)現(xiàn)所有的文章都是叫 Article object,這樣肯定不好,比如我們要修改,如何知道要修改哪個呢?
我們修改一下 blog 中的models.py
1 2 3 4 5 6 7 8 9 10 11 12 13 | from django.db import models
class Article(models.Model):
title = models.CharField(u'標題', max_length=256)
content = models.TextField(u'內(nèi)容')
pub_date = models.DateTimeField(u'發(fā)表時間', auto_now_add=True, editable = True)
update_time = models.DateTimeField(u'更新時間',auto_now=True, null=True)
def __unicode__(self):
return self.title
|
我們加了一個 __unicode__ 函數(shù),刷新后臺網(wǎng)頁,會看到:

所以推薦定義 Model 的時候 寫一個 __unicode__ 函數(shù)(或 __str__函數(shù))