zoukankan      html  css  js  c++  java
  • Django之ORM操作

    ORM介绍

    对象关系映射(Object Relational Mapping,简称ORM)

    ORM提供了对数据库的映射,不用直接编写SQL代码,只需操作对象就能对数据库操作数据。

    类名对应       -->   数据库中的表名
    
    类属性对应     -->   数据库里的字段
    
    类实例对象对应  -->   数据库表里的一行数据

     

    Django中的ORM

    Django项目使用MySQL数据库

    1. 在Django项目的settings.py文件中,配置数据库连接信息:

    DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.mysql",
            "NAME": "你的数据库名称",  # 需要自己手动创建数据库
            "USER": "数据库用户名",
            "PASSWORD": "数据库密码",
            "HOST": "数据库IP",
            "PORT": 3306
        }
    }

    2. 在与Django项目同名的目录下的__init__.py文件中写如下代码,告诉Django使用pymysql模块连接MySQL数据库:

    import pymysql
    
    pymysql.install_as_MySQLdb()

    3. 在app下的models.py中写类(models.Model):

    class User(models.Model):
        name = models.CharField(max_length=32)  # varchar(32)
        pwd = models.CharField(max_length=32)  # varchar(32)

    4. 执行数据库迁移的命令(app一定要在注册列表中,否则提示:No changes detected)

    python manage.py makemigrations  # 保存每个APP下models的变更记录
    python manage.py migrate         #  将models的变更记录同步到数据库中

    ORM单表操作

    简单的增删改查

    from app01 import models
    固定写法:models.User.objects     #User是类名,必须通过类名去操作表
    
    # 插入数据
    models.User.objects.create(name='lishichao') #name 是字段名 'lishichao' 是要插入的数据

    # 删除数据
    modele.User.objects.filter(name='lishichao').delete() # 先查询,再删除

    # 修改数据
    obj = models.User.objects.filter(name='lishichao')[0] # 取第一个元素 先查询,再修改
    obj.age = 18 # 在内存中修改 对象.属性,修改字段对应的数据
    obj.save() # 提交到数据库

    # 查询所有结果 ret
    = models.User.objects.all() print(ret) # 对象列表 <QuerySet [<User: User object>]> for i in ret: print(i.name,i.pwd) # 对象的属性是一个字段

    # 按条件查询
    obj = models.User.objects.filter(name = 'lishichao@163.com',pwd = '123456') # 条件:字段名和要查询的数据
    print(obj)
  • 相关阅读:
    1012 The Best Rank (25 分)(排序)
    1011. World Cup Betting (20)(查找元素)
    1009 Product of Polynomials (25 分)(模拟)
    1008 Elevator (20 分)(数学问题)
    1006 Sign In and Sign Out (25 分)(查找元素)
    1005 Spell It Right (20 分)(字符串处理)
    Kafka Connect 出现ERROR Failed to flush WorkerSourceTask{id=local-file-source-0}, timed out while wait
    flume、kafka、avro组成的消息系统
    Java23种设计模式总结【转载】
    Java编程 思维导图
  • 原文地址:https://www.cnblogs.com/root0/p/10758002.html
Copyright © 2011-2022 走看看