• orm介绍


    一-    ①orm数据库创建,需要在models里面定义好要建的表,

      ②在app01项目下的__init__.py文件内写入
              import pymysql
              pymysql.install_as_MySQLdb()

      ③在pycharm控制台依次输入一下语句,如果没有app01(项目)则需创建并在settings内配置
            python3 manage.py makemigrations
            只需要敲命令:makemigrations(记录数据库的修改记录)
            python3 manage.py migrate
            只需要敲命令:migrate(把数据同步到数据库)

    二- orm能干和不能干的事

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

      2 不能创建数据库

    三- orm增加字段:(注意数据库迁移命令2条)  注意:后来增加的字段,需要有默认值

      方式1:User.objects.create(address='')

      方式2:实例化产生一个user对象,user对象的save方法

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

      方式1:User.objects.filter(id=1,name='lqz').first().delete()
      方式2:User.objects.filter(id=1,name='lqz').delete()

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

      User.objects.filter(id=1,name='lqz').update()

    六 增删改查

      1 单表查询所有用户:models.User.objects.all()

        得到的是 queryset对象(当成列表),列表里面,一个一个的对象[user1,user2]

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

      3 模板里:   {% for user in user_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)

      前后台交互
    		<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>
    

     七、Django生命周期

    八、表的设计

    一对多,多对多

      一对多:对多的关系一旦确立,关联字段写在多的一方

      publish=models.ForeignKey(to='Publish', to_field='id')

      多对多:(自动创建第三张表)

      authors = models.ManyToManyField(to='Author')

  • 相关阅读:
    MyBatis(五)动态SQL 之 foreach 标签
    MyBatis(五)动态SQL 之 bind绑定
    MyBatis(五)动态SQL 之 sql 标签(重用片段)
    MyBatis(五)动态SQL 之 choose(when、otherwise)标签
    Interesting Finds: 2008.04.19
    Interesting Finds: 2008.04.15
    Interesting Finds: 2008.04.22
    Interesting Finds: 2008.04.18
    Interesting Finds: 2008.04.17
    Interesting Finds: 2008.04.23
  • 原文地址:https://www.cnblogs.com/layerluo/p/9925905.html
Copyright © 2020-2023  润新知