[TOC]

django的使用

1.创建表

1.1在表中新增列时,由于已存在列中可能已有数据,所以新增列必须制定新增列对应的数据

  1. 手动输入一个值

  2. 设置默认值

    age = models.InterField(default = 2)

  3. 允许为空

    age = models.InterField(null = True, blank = True)

  4. 要选择一段矩形代码,请在按住 Shift+Alt (在 Windows 和 Linux 中)/ Shift+Alt (Option) (在 macOS 中)的同时拖动鼠标。

问题记录

1.’NoneType’ object has no attribute ‘password’

这个是在数据库数据为空的时候出现的bug

  • 名字不能为中文
  • 密码最小长度
  • 评论区换行符变成了空格

2.Q查询中“,”可以表示and而直接用and却表示的是或

URL

用get方法传输值的时候 用?加上name=一个值,传输多个值的时候,用&进行连接,不用在加上?了

eg:删除盲盒

随机从数据库中取数据

  1. n = 10
    i = random.ranint(0, UserInfo.objects.count()-n)
    articles = UserInfo.objects.all()[i: i+n]
count = Article.objects.all().count()
rand_ids = sample(range(1, count), 10)
print(rand_ids)
articles = Article.objects.filter(id__in=rand_ids)
  1. import random
    content_pks = Article.objects.values_list('pk', flat=True)
    selected_pks = random.sample(list(content_pks), 3)
    content_objects = Article.objects.filter(pk__in=selected_pks)
    print(content_objects)
total_count= Content.objects.count()
fraction = 100./total_count
object_list = [ c for c in Content.objects.all() if random.random() < fraction ]

sample(序列a,n)

功能:从序列a中随机抽取n个元素,并将n个元素生以list形式返回

一、下面来看看:filter查询:

1.__contains(包含)

shell命令下查询:Blog.objects.filter(title__contains =”django”)—————————>返回一个queryset[]查询(查询集)只能输入一个值。加上一个”i”后不区别大小写【sql等数据库中】

2.__in (其中之一,可以传入一个列表,传多个值。)

Blog.objects.filter(id__in = [3,6,9])

3.__range(一个范围,使用元祖):

Blog.objects.filter(id__range =(30,45))

二、前面讲的是包含的查询,下面来看看不包含的查询:

exclude方法为不包含的:

Blog.objects.exclude(id=3)

三、日期类型查询

Blog.objects.filter(create_time__year = 2018)——————->查询年为2018年的内容

Blog.objects.filter(create_time__month=3)————————->查询月

四、日期查询类型只是筛选了条件,怎么让条件在前端显示呢?django提供了一个dates方法:

Blog.objects.dates(‘create_time’, ‘year’,’DESC’)——————————->分别为:时间字段,查询返回年year,年月month,年月日day,最后一个参数是排序方式ASC正序,DESC倒序。

MD5

Django获取文件的方式及文件MD5的多种方法