django构建后台服务器,为前端和移动端提供数据支持,会使用到数据库的一些基本操作。
单参数查询:
Models:
class Orders(models.Model):
order_no = models.CharField('订单编码', max_length=20, unique=True)
uid = models.IntegerField('用户id', default=0)
vin = models.CharField('车辆vin码', max_length=17)
car_name = models.CharField('车辆名称', max_length=100)
year_id = models.IntegerField('车辆年款id', default=0)
create_time = models.DateTimeField('订单生成时间', auto_now_add=True)
status = models.IntegerField('订单状态', default=1)
pay_price = models.DecimalField('已支付金额', max_digits=10, decimal_places=2)
pay_status = models.IntegerField('支付状态', default=1)
price = models.DecimalField('订单总金额', max_digits=10, decimal_places=2)
discount = models.DecimalField('优惠金额', max_digits=10, decimal_places=2)
invoice_status = models.IntegerField('开票状态', default=1)
type = models.IntegerField('订单类型', default=1)
authorization_img = models.CharField('用户授权', max_length=20)
car_vin_img = models.CharField('车辆vin码', max_length=20)
def __str__(self):
return self.vin + ':' + self.order_no
def to_dict(self, list):
return model_to_dict(self, list)
class Meta:
ordering = ['-create_time']
db_table = 'orders'
managed = False
对表中的数据进行查询:
reports = models.OrderReport.objects.filte(uid=uid)
多参数查询:
if uid:
kwargs['order_no__uid'] = uid
if e_time:
kwargs['order_no__create_time__lt'] = get_time(e_time)
if b_time:
kwargs['order_no__create_time__gt'] = get_time(b_time)
reports = models.OrderReport.objects.filter(**kwargs)
添加时间参数,也就可以添加其他参数。
分页:
分页使用Paginator来进行操作。
from django.core.paginator import Paginator
paginator = Paginator(reports,rows)#根据rows将数据划分开,然后再获取相关页数据
report_list = paginator.get_page(pages)