zoukankan      html  css  js  c++  java
  • orm介绍

    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的请求生命周期

     

  • 相关阅读:
    我的技术移民之路(一)移,还是不移
    【新消息】 请问签证和护照有什么区别啊?_爱问知识人
    Australia Visa Information China Chinese Visa Types
    HqBaiduMusic百度音乐高品质下载Chrome扩展
    分享:一个支持并发, 支持异步/同步, 支持http/https, 支持续传的avhttp库
    linux世界里类似source insight的工具(zz)如梦初醒中国教育人博客
    分享:Fix8 0.7.0 发布,C++ 金融信息交换协议实现
    我的技术移民之路(一)移,还是不移
    转:javascript null和undefined 区别
    javascript Frame和IFrame
  • 原文地址:https://www.cnblogs.com/xuecaichang/p/9919280.html
Copyright © 2011-2022 走看看