zoukankan      html  css  js  c++  java
  • 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')

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 一元三次方程
    Java实现 蓝桥杯VIP 算法训练 乘法表
    Java实现 蓝桥杯VIP 算法训练 矩阵加法
    Java实现 蓝桥杯VIP 算法训练 一元三次方程
    Java实现 蓝桥杯VIP 算法训练 平方计算
    Java实现 蓝桥杯VIP 算法训练 平方计算
    Java实现 蓝桥杯VIP 算法训练 平方计算
    Java实现 蓝桥杯VIP 算法训练 乘法表
    Java实现 蓝桥杯VIP 算法训练 乘法表
    监管只是压倒网盘业务的一根稻草,但不是主要原因(答案只有一个:成本!)
  • 原文地址:https://www.cnblogs.com/layerluo/p/9925905.html
Copyright © 2011-2022 走看看