python3+Django做的小实例

 

我们创建项目test1和一个应用booktest

使用pycharm打开:

python3+Django做的小实例_第1张图片

注册应用:

python3+Django做的小实例_第2张图片

Setting.py中汉化:


# LANGUAGE_CODE = 'en-us'

LANGUAGE_CODE = 'zh-hans' # 使用中文

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai' #中国时间

创建Model对象:

from django.db import models

# Create your models here.
# 1
class BookInfo(models.Model):
    '''tushu'''
    btitle = models.CharField(max_length=20)
    bpub_date = models.DateField()

    def __str__(self):
        # 返回书名
        return self.btitle

# 英雄
class HeroInfo(models.Model):
    hname = models.CharField(max_length=20)
    hgender = models.BooleanField(default=False)
    hcomment = models.CharField(max_length=128)
    hbook = models.ForeignKey('BookInfo')

    def __str__(self):
        # 返回英雄名字
        return self.hname

2.迁移

迁移前目录结构如下图:

python3+Django做的小实例_第3张图片

迁移由两步完成:

  • 1.生成迁移文件:根据模型类生成创建表的迁移文件。
  • 2.执行迁移:根据第一步生成的迁移文件在数据库中创建表。

生成迁移文件命令如下:

python manage.py makemigrations

 

执行生成迁移文件命令后,会在应用booktest目录下的migrations目录中生成迁移文件。

生成迁移文件后的目录结构: 

python3+Django做的小实例_第4张图片

Django框架根据我们设计的模型类生成了迁移文件,在迁移文件中我们可以看到fields列表中每一个元素跟BookInfo类属性名以及属性的类型是一致的。同时我们发现多了一个id项,这一项是Django框架帮我们自动生成的,在创建表的时候id就会作为对应表的主键列,并且主键列自动增长。

执行迁移命令如下:

python manage.py migrate

 python3+Django做的小实例_第5张图片

当执行迁移命令后,Django框架会读取迁移文件自动帮我们在数据库中生成对应的表格。

Django默认采用sqlite3数据库,上图中的db.sqlite3就是Django框架帮我们自动生成的数据库文件。 sqlite3是一个很小的数据库,通常用在手机中,它跟mysql一样,我们也可以通过sql语句来操作它。

下面使用sqliteman打开db.sqlite3文件进行查看。如果没有安装sqliteman,需要先使用如下命令进行安装。

sudo apt-get install sqliteman

安装成功之后,在终端输入sqliteman命令,敲击回车即可打开软件。

sqliteman界面如下: 

python3+Django做的小实例_第6张图片

 

使用Django 后台管理默认程序:

创建管理员

创建管理员的命令如下,按提示输入用户名、邮箱、密码。

python manage.py createsuperuser

 

 

接下来启动服务器。

python manage.py runserver

python3+Django做的小实例_第7张图片

打开浏览器,在地址栏中输入如下地址后回车。

http://127.0.0.1:8000/admin/

python3+Django做的小实例_第8张图片 

 

 python3+Django做的小实例_第9张图片

进入后台可以进行添加修改删除操作:

在列表页中点击"增加"可以进入增加页,Django会根据模型类的不同,生成不同的表单控件,按提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。

python3+Django做的小实例_第10张图片

在列表页中点击某行的第一列可以进入修改页。

 

4.自定义管理页面

在列表页只显示出了BookInfo object,对象的其它属性并没有列出来,查看非常不方便。 Django提供了自定义管理页面的功能,比如列表页要显示哪些值。

打开booktest/admin.py文件,自定义类,继承自admin.ModelAdmin类。

  • 属性list_display表示要显示哪些属性
class BookInfoAdmin(admin.ModelAdmin):
    list_display = ['id', 'btitle', 'bpub_date']
  • 修改模型类BookInfo的注册代码如下
admin.site.register(BookInfo, BookInfoAdmin)

 

 

 

 

  • 刷新BookInfo的列表页,所有属性都显示出来了
from django.contrib import admin
from booktest.models import BookInfo,HeroInfo

class BookInfoAdmin(admin.ModelAdmin):
    list_display = ['id', 'btitle', 'bpub_date']
class HeroInfoAdmin(admin.ModelAdmin):
    list_display = ['id', 'hname','hgender','hcomment']

admin.site.register(BookInfo,BookInfoAdmin)
admin.site.register(HeroInfo,HeroInfoAdmin)

python3+Django做的小实例_第11张图片 

 

你可能感兴趣的:(python,Django)