zoukankan      html  css  js  c++  java
  • django--model--orm001-- 增删改查

     app01/models

    from django.db import models
    class  Student(models.Model):
        id = models.IntegerField(primary_key=True)
        name = models.CharField(max_length=20)
        age = models.PositiveIntegerField()
        gender = models.BooleanField()
        email = models.EmailField()迁 

    生成迁移文件

    python manage.py makemigrations

    python manage.py migrate

     查看数据库

    1、双击db.sqlite3,点test connection,会自动下载数据库驱动

     2、生成数据库关键字段

     3、打开数据库,字段已存在

      4、查看DDL

     5、插入数据

    app01/views 增加数据方法一

    def add_student(request):
        name = "zhangsan"
        age = 20
        gender = True
        email= '123456@126.com'
        student_obj = Student(name=name,age=age,gender=gender,email=email)
        student_obj.save()
        return HttpResponse("添加成功")

    apo01.urls

    from django.urls import path
    from . import views
    urlpatterns = [
        # path('',views.index),
        path('',views.add_student)
    ]

    djangoproject/urls

    from django.urls import path
    from app01.views import *
    from django.conf.urls import include
    
    urlpatterns = [
        # path('admin/', admin.site.urls),
        path('',include('app01.urls'))
    ]

     6、增加数据方法二

    def add_student(request):
        name = "lisi"
        age = 20
        gender = True
        email= '123456@126.com'
        # student_obj = Student(name=name,age=age,gender=gender,email=email)
        # student_obj.save()
        student_obj = Student.objects.create(name=name,age=age,gender=gender,email=email)
        return HttpResponse("添加成功")

    7、增加数据方法三

    def add_student(request):
        #name = "lisi"
        #age = 20
        #gender = True
        #email= '123456@126.com'
        #方法一
        # student_obj = Student(name=name,age=age,gender=gender,email=email)
        # student_obj.save()
        #方法二
        #student_obj = Student.objects.create(name=name,age=age,gender=gender,email=email)
        #方法三
        dic={"name":"zhaoliu","age":20,"gender":True,"email":"ffqeerqe@126.com"}
        Student.objects.create(**dic)
        return HttpResponse("添加成功")

     8、查询数据 app01/views

    all() 结果集查询所有。 返回QuerySet查询集(可以遍历)

    values() 查询所有字段

    def select_student(request):
        #all()方法
        student_list=Student.objects.all()
        for i in student_list:
            print("all:",i,i.name)
        #values()方法
        student_list1=Student.objects.values()
        print("values",student_list1)
        return HttpResponse("查询成功")

     9、更新数据 app01/views

    def update_student(request):
        Student.objects.filter(id=1).update(name="nihao")
        return HttpResponse("更新成功")

    10、删除数据 app01/views

    def delete_student(request):
        Student.objects.filter(id=4).delete()
        return HttpResponse("删除成功")

    app01/urls

    from django.urls import path
    from . import views
    urlpatterns = [
        # path('',views.index),
        # path('',views.add_student),
        # path('',views.select_student),
        # path('',views.update_student),
        path('',views.delete_student),
    ]

      

    常见问题处理一

    报错信息:myapp.Article.tags: (fields.W340) null has no effect on ManyToManyField.

    解决方法:tags = models.ManyToManyField("Tag") 不用跟null

    常见问题处理二

    报错信息:ERRORS:
    myapp.Tag.date: (fields.E130) DecimalFields must define a 'decimal_places' attribute.
    myapp.Tag.date: (fields.E132) DecimalFields must define a 'max_digits' attribute.

    解决方法:DecimalFields字段的“decimal_places(有几位小数) 和 “max_digits(总共有几位数)”

    上班求生存,下班求发展
  • 相关阅读:
    C# 向共享文件夹上传及下载文件
    Generate the Jobs script from msdb Database
    用水晶报表做条码打印
    多语言系统的实现
    用DataBaseMail发图片并茂的邮件
    浅析WINFORM工具条的重用实现
    具有代表性的财务报表--应收帐
    C#实现Combobox自动匹配字符
    动态列报表
    真正通用的SQL分页存储过程
  • 原文地址:https://www.cnblogs.com/ljf520hj/p/11716940.html
Copyright © 2011-2022 走看看