Django 后台

与后台相关文件:每个app中的 admin.py 文件与后台相关。

一,新建一个 名称为 zqxt_admin 的项目

1

django-admin.py startproject zqxt_admin

二,新建一个 叫做 blog 的app

1

2

3

4

5

# 进入 zqxt_admin 文件夹

cd zqxt_admin

扫描二维码关注公众号,回复: 4534848 查看本文章

# 创建 blog 这个 app

python manage.py startapp blog

注意:不同版本的 Django 创建 project 和 app 出来的文件会有一些不同

三,修改 blog 文件夹中的 models.py

1

2

3

4

5

6

7

8

9

10

# coding:utf-8

from django.db import models

class Article(models.Model):

    title = models.CharField(u'标题', max_length=256)

    content = models.TextField(u'内容')

    pub_date = models.DateTimeField(u'发表时间', 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的时候,在后面都加一个逗号,这是一个好习惯。

五,同步所有的数据表

1

2

3

# 进入包含有 manage.py 的文件夹

python manage.py makemigrations

python manage.py migrate

1

python manage.py createsuperuser

#按照提示输入账号与密码

六,修改 admin.py 

进入 blog 文件夹,修改 admin.py 文件(如果没有新建一个),内容如下


from django.contrib import admin

from .models import Article

admin.site.register(Article)


七,打开 开发服务器只需要这三行代码,我们就可以拥有一个强大的后台!

1

2

python manage.py runserver

# 如果提示 8000 端口已经被占用,可以用 python manage.py runserver 8001 以此类推

访问 http://localhost:8000/admin/ 输入设定的帐号和密码, 就可以看到:

点击 Articles,动手输入 添加几篇文章,就可以看到:

我们会发现所有的文章都是叫 Article object,这样肯定不好,比如我们要修改,如何知道要修改哪个呢?

我们修改一下 blog 中的models.py

1

2

3

4

5

6

7

8

9

10

11

12

13

# coding:utf-8

from django.db import models

class Article(models.Model):

    title = models.CharField(u'标题', max_length=256)

    content = models.TextField(u'内容')

    pub_date = models.DateTimeField(u'发表时间', auto_now_add=True, editable = True)

    update_time = models.DateTimeField(u'更新时间',auto_now=True, null=True)

    def __str__(self):

        return self.title

刷新后台网页,会看到:

所以推荐定义 Model 的时候 写一个  __str__函数

八,在列表显示与字段相关的其它内容

后台已经基本上做出来了,可是如果我们还需要显示一些其它的fields,如何做呢?

在admin.py中

1

2

3

4

5

6

7

8

9

10

11

12

13

from django.contrib import admin

from .models import Article, Person

class ArticleAdmin(admin.ModelAdmin):

    list_display = ('title''pub_date''update_time',)

class PersonAdmin(admin.ModelAdmin):

    list_display = ('full_name',)

admin.site.register(Article, ArticleAdmin)

admin.site.register(Person, PersonAdmin)

猜你喜欢

转载自blog.csdn.net/rookie_is_me/article/details/84988866