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(总共有几位数)”