django中创建一个Model

step1

创建一个应用(python manage.py startapp books) 这里创建一个叫books应用
,然后在settings中的INSTALLED_APPS参数中加上应用,如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'books',
]

step 2

创建一个model类,一个类对应数据库中的一张表如下
打book>models.py编写下面代码:

from django.db import models

# Create your models here.
class Waybill(models.Model):
    waybill_no = models.CharField(max_length = 100)
    src_dept_code = models.CharField(max_length = 100)
    dist_dept_code = models.CharField(max_length = 100)
    product_type = models.CharField(max_length = 100)
    jijian_tm = models.DateTimeField()
    shoujian_tm = models.DateTimeField()

    ##等同于之前版本的__unicode__方法,unicode对象
    def __str__(self):
        return self.waybill_no

执行python manage.py migrate或者python manage.py makemigrations
(django 1.9以后不python manage.py syncdb 不用)

step 3 model操作

1 添加数据
from oiarpt.models import Waybill
w1 = Waybill(waybill_no = 100000000001,src_dept_code = '010R',dist_dept_code = '755R',product_type = 'T1',jijian_tm = '2017-08-11 02:10:00',shoujian_tm = '2017-08-12 10:00:00')
w1.save()

上面的代码相当于执行了:

insert inot  oiarpt_waybill values(...) 
2 检索数据库:
wb_list = Waybill.objects.all()

相当于执行了

select ... from oiprpt_waybill
3 过滤
wb_list = Waybill.objects.filter(waybill_no = '100000000000')

相当于执行了 :

select ... from oiprpt_waybill where wayblii_no = '100000000000'
wb_list = Waybill.objects.filter(waybill_no__contains = '10000')

相当于执行了 :

select ... from oiprpt_waybill where wayblii_no like '10000'

类似__contains 还有
__icontains: 忽略大小写
__startswith:以…开头
__endswith: 以…结尾
__range:相当于between

与filter() 方法相同的还有get()方法,但是get只能后加一条数据, 返回多个,或者是None都会报错

4 排序:
 wb_list = Waybill.objects.order_by("-waybill_no")#按waybill_no 倒序排序

相当于执行了:

select  ...  from oiarpt_waybill 
order by waybill_no desc

别一个种方法是在model加上默认排序的字段:

class Waybill(models.Model):
    waybill_no = models.CharField(max_length = 100)
    src_dept_code = models.CharField(max_length = 100)
    dist_dept_code = models.CharField(max_length = 100)
    product_type = models.CharField(max_length = 100)
    jijian_tm = models.DateTimeField()
    shoujian_tm = models.DateTimeField()

    ##等同于之前版本的__unicode__方法,unicode对象
    def __str__(self):
        return self.waybill_no
    #指定排序的字段
    class Meta:
        ordering = ['-waybill_no']
5 更新数据
Waybill.objects.filter(waybill_no = '100000000000').update(product_type = 'T2')
6 删除对象
w = Waybill.object.get(waybill_no = '100000000000')
w.delete()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crystalnsd

万水千山总是情,支持一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值