Django之ORM增删改查

1.数据库的配置:

django默认支持sqlite,mysql ,oracle,postgresql数据库。

  <1>sqlite

    django默认使用sqlite的数据库,默认自带sqlite的数据库驱动,引擎名称:django.db.backends.sqlite3

  <2>mysql

    引擎名称:django.db.backends.mysql

2.mysql驱动程序

  · MySQLdb(mysql python)

  ·mysqlclient

  ·MySQL

  ·PyMySQL(纯python的mysql驱动程序)

3. 在django的项目中会默认使用sqlite数据库,在setting里有如下配置:

4.在django的项目中使用mysql数据库,在setting里有如下配置:

5.model中操作数据库的语法:

  <1>创建类继承models.Model:

    

    1.Book:表的名称

    2.price:表中字段的名称

    3.CharField(max_length=1000):创建字段的格式,字符串格式,长度最大1000

    4.在命令行输入python manage.py makemigrations 创建表单

    5.在命令行输入python manage.py migrate

    注意:如果报no module named MySQLdb,需在项目__init__下加入下边两条

      import  pymysql

      py.mysql.install_as_MySQLdb()

 6.ORM对单表的增删改操作:

   <1>数据的添加:

      第一种添加数据如下

      

      1.表的名称

      2.在表中添加的键值对

      3.数据的保存

      第二种添加数据如下:

       

   <2>数据的更改:

      第一种修改数据如下:

      

       1.filter 查找方法

       2.通过字段查找到该数据

       3.更改字段的新值

      第二种修改数据如下:

        

        注意:推荐第一种方法,且第一种方法filter效率高(可添加多条件筛选) filter可以取多条记录

        增加数据库操作日志在setting中加入如下内容:

        

   <3>数据的删除:

      

        1.Book:表的名称

        2.name=‘xiaoming’:字段的名称

        3.delete():删除方法

  <4>数据的查询:

      

      1.查询Author中的所有数据

      2.返回的是一个对象列表

      3.遍历对象获取里边的值如下:

        

          1.返回的对象列表

          2.每个对象的键(数据库中的字段名)

      4.用切片限制数据的数量:

          

         1.显示前三条数据

         如下为查询的api:

            

            

            

               get() first()   last() 取到的是一个实例对象而不是一个Queryset的集合对象

       5注意去重:需要用values筛选

                

      6.模糊查询api:

            

猜你喜欢

转载自www.cnblogs.com/lixiaoting/p/10103500.html