本关任务:学习 Django 增加数据。
相关知识
为了完成本关任务,你需要掌握:
1.Django 新增数据。
Django 新增数据
在 Django ORM 中进行数据新增是非常简单的一件事,因为 Django ORM 已经把 API 封装得非常完美,接下来让我们体验下它的美吧!
实例:
DjangoProject/DjangoApp/models.py 文件代码如下:
from django.db import models
class Student(models.Model):
# _id,stu_id,name
# 自增主键
_id = models.AutoField(primary_key=True) # 自增主键
stu_id = models.IntegerField(verbose_name="学生id")
name = models.CharField(max_length=20, verbose_name="学生姓名")
前提条件我们已经准备好了,接下来我们进入正题吧!
DjangoProject/urls.py 文件代码:
from django.contrib import admin
from django.urls import path, include
from DjangoApp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('get_student/', views.get_student,name='get_student'),
path('add_student/',views.add_student,name='add_student')
]
DjangoProject/DjangoApp/views.py 文件代码:
from django.http import HttpResponse
from DjangoApp.models import Student
def get_student(request):
student_list = Student.objects.all().values()
return HttpResponse(student_list)
def add_student(request):
stu = Student(id=4,stu_id=201904,name='张成明')
stu.save()
#stu = Student.objects.create(id=4,stu_id=201904,name='张成明') # 这种方式也可以
return redirect(reverse('get_student'))
Django 删除数据
在 Django ORM 中进行数据删除是非常简单的一件事,因为 Django ORM 已经把 API 封装得非常完美,接下来让我们体验下它的美吧!
实例:
DjangoProject/DjangoApp/models.py 文件代码如下:
from django.db import models
class Student(models.Model):
# _id,stu_id,name
# 自增主键
_id = models.AutoField(primary_key=True) # 自增主键
stu_id = models.IntegerField(verbose_name="学生id")
name = models.CharField(max_length=20, verbose_name="学生姓名")
前提条件我们已经准备好了,接下来我们进入正题吧!
删除编号 _id 为 1 的学生。
DjangoProject/urls.py 文件代码:
from django.contrib import admin
from django.urls import path, include
from DjangoApp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('get_student/', views.get_student,name='get_student'),
path('add_student/',views.add_student,name='add_student'),
path('del_student/',views.del_student,name='del_student')
]
DjangoProject/DjangoApp/views.py 文件代码:
from django.shortcuts import render,redirect
from django.http import HttpResponse
from django.urls import reverse
# Create your views here.
from DjangoApp.models import Student
def get_student(request):
student_list = Student.objects.all().values()
return HttpResponse(student_list)
def add_student(request):
student = Student.objects.create(_id=4,stu_id=201904,name="王城五")
student.save()
return redirect(reverse('get_student'))
def del_student(request):
student = Student.objects.filter(_id=1).first()
student.delete()
return redirect(reverse('get_student'))
Django 修改数据
在 Django ORM 中进行数据修改操作是一个怎么样的使用流程呢?
实例:
DjangoProject/DjangoApp/models.py 文件代码如下:
from django.db import models
class Student(models.Model):
# _id,stu_id,name
# 自增主键
_id = models.AutoField(primary_key=True) # 自增主键
stu_id = models.IntegerField(verbose_name="学生id")
name = models.CharField(max_length=20, verbose_name="学生姓名")
前提条件我们已经准备好了,接下来我们进入正题吧!
修改 _id 为 2 的学生信息,修改内容为:name = "赵刚"。
DjangoProject/urls.py 文件代码:
from django.contrib import admin
from django.urls import path, include
from DjangoApp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('get_student/', views.get_student,name='get_student'),
path('add_student/',views.add_student,name='add_student'),
path('del_student/',views.del_student,name='del_student'),
path('put_student/',views.put_student,name='put_student')
]
DjangoProject/DjangoApp/views.py 文件代码:
from django.shortcuts import render,redirect
from django.http import HttpResponse
from django.urls import reverse
# Create your views here.
from DjangoApp.models import Student
def get_student(request):
student_list = Student.objects.all().values()
return HttpResponse(student_list)
def add_student(request):
student = Student.objects.create(_id=4,stu_id=201904,name="王城五")
student.save()
return redirect(reverse('get_student'))
def del_student(request):
student = Student.objects.filter(_id=1).first()
student.delete()
return redirect(reverse('get_student'))
def put_student(request):
student = Student.objects.filter(_id=2).first()
student.name = '赵刚'
student.save()
return redirect(reverse('get_student'))
编程要求
根据提示,在右侧编辑器 Begin-End 区间中补充代码,完成以下任务:
新增一条数据:
新增数据为:
字段名 值
_id(int) 4
stu_id(int) 2019004
name(varchar) 王城五
删除一条数据:
需要删除的数据:
字段名 值
_id(int) 1
stu_id(int) 2019001
name(varchar) 王正
修改一条数据:
需要修改的数据:
字段名 值
_id(int) 2
stu_id(int) 2019002
name(varchar) 张长明
- 修改数据为:
字段名 值
_id(int) 2
stu_id(int) 2019002
name(varchar) 赵章民
平台说明:
在右侧编辑代码文件 Begin-End 区间中补充代码:
代码补充完成后点击评测按钮:
测试说明
任务完成后,点击评测按钮,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
输出:
{'_id': 1, 'stu_id': 2019001, 'name': '王正'}{'_id': 2, 'stu_id': 2019002, 'name': '张长明'}{'_id': 3, 'stu_id': 2019003, 'name': '王宝名'}{'_id': 4, 'stu_id': 2019004, 'name': '王城五'}
{'_id': 2, 'stu_id': 2019002, 'name': '张长明'}{'_id': 3, 'stu_id': 2019003, 'name': '王宝名'}{'_id': 4, 'stu_id': 2019004, 'name': '王城五'}
{'_id': 2, 'stu_id': 2019002, 'name': '赵章民'}{'_id': 3, 'stu_id': 2019003, 'name': '王宝名'}{'_id': 4, 'stu_id': 2019004, 'name': '王城五'}代码:from django.shortcuts import render,redirect
from django.http import HttpResponse
from django.urls import reverse
# Create your views here.
from DjangoApp.models import Student
def get_student(request):
student_list = Student.objects.all().values()
return HttpResponse(student_list)
def add_student(request):
########## Begin ##########
########## End ##########
return redirect(reverse('get_student'))
def del_student(request):
########## Begin ##########
########## End ##########
return redirect(reverse('get_student'))
def put_student(request):
########## Begin ##########
########## End ##########
return redirect(reverse('get_student'))