Django框架的学习(二)

Django框架的学习(二)

一、model类的一些基本使用

这里我讲的例子是创建一个图书类,首先创建某个类,这个类是继承于models模块的Model类

class BookInfo(models.Model):
    objects = models.Manager() 
    btitle = models.CharField(max_length=20)
    bpub_date = models.DateField()
    # 阅读量
    bread = models.IntegerField(default=0)
    bcomment = models.IntegerField(default=0)
    # 删除选项
    isDelete = models.BooleanField(default=False)

设计一个模型类BookInfo,isDelete是作为软删除的标记,目的是防止重要数据丢失,然后生成表。

objects = models.Manager()的使用是因为有些朋友的pycharm无法在后面显示函数快捷导航

接下来我就关联一个英雄类,关联前面图书类。
h_book = models.ForeignKey(‘BookInfo’)表示是外键,关联前面的BookInfo类。

接下来我就关联一个英雄类,关联前面图书类。
h_book = models.ForeignKey(‘BookInfo’)表示是外键,关联前面的BookInfo类。

class Hero(models.Model):
    hname = models.CharField(max_length=10)
    hcomment = models.CharField(max_length=200)
    hgender = models.BooleanField(default=False)
    h_book = models.ForeignKey('BookInfo')

这里面是开发文档中文版有详细的字段类型和选项的介绍,宗旨就是需要什么就去文档选取所需要的字段类型,不用所有都背下来。常用的有BooleanField、CharField(指定最大长度,不然会报错)、DateField、IntegerField(可以设置默认值)、ForeignKey

接下来就是轮到生成表,首先通过命令行输入python manage.py makemigrations生成迁移文件,然后生成表 python manage.py migrate 去你的mysql数据库检查一下,就会发现存在这两张表

二、利用model类进行数据交互

首先需要导入你需要修改数据的那个类,from booktest.models import BookInfo进行导入,from之后的路径取决于你的项目管理;创建BookInfo对象

#创建操作
	b = BookInfo()
    b.btitle = "新图书"
    b.bpub_date = date(1997,2,9)
    b.save()
#查找操作
	res = BookInfo.objects.get(id=bid)
#删除操作
	res.delete()

三、后台管理

首先创建管理员,命令 python manage.py createsuperuser;然后按着提示进行基本信息设置;启动服务器,可以通过访问后台管理页面http://127.0.0.1:8000/admin,这个本地访问端口可以启动服务器的时候进行设置。

后台管理页面
下一步是需要在admin.py注册模型类

from django.contrib import admin
from booktest.models import BookInfo,Hero
# Register your models here.
class BookInfoAdmin(admin.ModelAdmin):
    """图书模型管理类"""
    # 在后台管理的时候显示具体信息
    list_display = ['btitle','bpub_date','bread','bcomment','isDelete']

class HeroAdmin(admin.ModelAdmin):
    list_display = ['hname','hgender','hcomment','h_book']

admin.site.register(BookInfo,BookInfoAdmin)
admin.site.register(Hero,HeroAdmin)

还有显示书名以及英雄名字,重写__str__的方法。

class BookInfo(models.Model):
    objects = models.Manager()
    btitle = models.CharField(max_length=20)
    bpub_date = models.DateField()
    # 阅读量
    bread = models.IntegerField(default=0)
    bcomment = models.IntegerField(default=0)
    # 删除选项
    isDelete = models.BooleanField(default=False)
    def __str__(self):
        return self.btitle

class Hero(models.Model):
    hname = models.CharField(max_length=10)
    hcomment = models.CharField(max_length=200)
    hgender = models.BooleanField(default=False)
    h_book = models.ForeignKey('BookInfo')
    def __str__(self):
        return self.hname
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值