首页 > 技术文章 > orm介绍

xuecaichang 2018-11-06 22:18 原文

orm简介

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

ORM实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而 导致的无效 劳动。

 

1、tools---->Run manage.py Task

python mamage.py makemigrations

只需要敲命令:makemigrations(记录数据库的修改记录)

python manage.py migrate

只需要敲击命令:migrate(把数据同步到数据库)

2、orm能干和不能干的事

1、能创建数据表,新增,删除字段

2、不能创建数据库

3、orm增加字段(注意数据库迁移命令2条)

注意:后来增加的字段,需要有默认值

phone=models.CharField(max_length=64,default='120')

4、删除字段

注释掉字段,执行数据库迁移命令

5、修改数据

直接修改字段,执行数据库迁移命令

6、user的增删改查

      -增(1):User.objects.create(address='')
        -增(2):实例化产生一个user对象,user对象的save方法
        -删:User.objects.filter(id=1,name='xcc').first().delete()
        -删:User.objects.filter(id=1,name='xcc').delete()
        -改:User.objects.filter(id=1,name='xcc').update()
        -查:User.objects.all()
            user=User.objects.filter(name='xcc')
            user.name


前后台交互
    <form action="/updateuser/?id={{ user.id }}" method="post">
            <p><input type="hidden" name="id" value="{{ user.id }}"></p>
            <p>用户名: <input type="text" name="name" value="{{ user.name }}"></p>
            <p>密码: <input type="text" name="password" value="{{ user.password }}"></p>
            <p>地址: <input type="text" name="addr" value="{{ user.address }}"></p>
            <input type="submit" value="提交">
        </form>

 

重点**

1、单表查询所有用户:ret=mdels.User.objects.all() ;得到的是 queryset对象(当成列表),列表里面,一个一个的对象[user1,user2]

2、render(request,'userlist.html',{'user_list':ret})

3、模板里 :{%for usr in usr_list%}

# 要循环的内容 {{user.name}}

{%endfor%}

4、get请求携带参数

http://127.0.0.1:8000/deleteuser/?id=1 后台取值:request.GET.get('id') request.GET['id']

5、orm删除记录 models.User.objects.filter(id=id).delete()

返回值:影响的行数

6、前台post提交的数据取值:name=request.POST.get('name')

7 、orm保存: 两种方式: 1 user=models.User.objects.create(name=name,password=pwd,address=addr) 2 user=models.User(name=name,password=pwd,address=addr) user.save()

8、orm查询单条数据:user=models.User.objects.filter(id=id).first()

9、orm的修改 models.User.objects.filter(id=id).update(name=name,password=pwd,address=addr)

 

7、django的请求生命周期

 

 

推荐阅读