pycharm-django(创建表,对表的操作)

创建表

  一.在项目-应用中的models.py文件添加表结构

  如:

    class 表名(models.Model):

        变量名=models.约束(参数)

  二.执行数据库迁移

    更改数据库引擎在setting文件中找到DATABASES

    先注释掉系统自带sqlite引擎

    然后添加mysql引擎,如下:            

 1 DATABASES = {
 2     'default': {
 3         'ENGINE': 'django.db.backends.mysql',
 4         'NAME':'bms',# 要连接的数据库,连接前需要创建好
 5         'USER':'root',# 连接数据库的用户名
 6         'PASSWORD':'',# 连接数据库的密码
 7         'HOST':'127.0.0.1',# 连接主机,默认本级
 8         'PORT':3306#  端口 默认3306
 9     }
10 }

    在项目名文件下的_init_文件内写入:

       import pymysql

        pymysql.install_as_MySQLdb()

    最后执行数据库迁移命令(在控制台-项目目录下执行)

      1.  Python manage.py makemigrations

      2 . python manage.py migrate

注意:必须在settings中的INSTALLED_APPS 注册models所在的app

如:

  'app01.apps.App01Config',/应用名.apps.应用名(首字母大写)Config

对表的增删改查:

  添加:

    方式一: 变量名=Book(表列名=值)

         变量名.save()

    方式二: 变量名=Book.objects.create(表列名=值)

        变量名.title

  查询: 变量名=Book.objects.约束符(参数)

  删除: 查询(指上一行).delete()

  修改:查询(同上).update(要改的变量名=值)

 1 单表查询:
 2  4 <1> all():                  查询所有结果
 3                             调用者:objects管理器  返回queryset
 4   
 5 <2> filter(**kwargs):       它包含了与所给筛选条件相匹配的对象
 6                             调用者:objects管理器  返回queryset
 7   
 8 <3> get(**kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个,
 9                             如果符合筛选条件的对象超过一个或者没有都会抛出错误。
10                             调用者:objects管理器  返回查询到model对象 (注意:查询结果有且只有一个才执行)
11 <4> exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象
12                             调用者:objects管理器  返回queryset
13  
14 <5> order_by(*field):       对查询结果排序
15                             由queryset对象调用,返回值是queryset
16   
17 <6> reverse():              对查询结果反向排序
18                             由queryset对象调用,返回值是queryset
19   
20 <7> count():                返回数据库中匹配查询(QuerySet)的对象数量。
21                             由queryset对象调用 返回int
22   
23 <8> first():                返回第一条记录
24                             调用者:queryset   返回model对象
25   
26 <9> last():                返回最后一条记录
27                             调用者:queryset   返回model对象
28   
29 <10> exists():              如果QuerySet包含数据,就返回True,否则返回False
30                             由queryset对象调用 返回值布尔值
31  
32 <11> values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
33                             model的实例化对象,而是一个可迭代的字典序列
34                             由queryset对象调用,返回值是queryset
35 <12> values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
36                             由queryset对象调用,返回值是queryset
37  
38 <13> distinct():            从返回结果中剔除重复纪录
39                             由queryset对象调用,返回值是queryset
 
1 模糊查询(双下划线)
2         Book.objects.filter(price__in=[100,200,300])
3         Book.objects.filter(price__gt=100)
4         Book.objects.filter(price__lt=100)
5         Book.objects.filter(price__range=[100,200])
6         Book.objects.filter(title__contains="python")
7         Book.objects.filter(title__icontains="python")
8         Book.objects.filter(title__startswith="py")
9         Book.objects.filter(pub_date__year=2012)
 
 
原文地址:https://www.cnblogs.com/leo-tail-x/p/9844472.html