Django对数据库的增加
先创建一个HTML文件---add.html
Title
在子应用的views里写添加视图
# 类视图---添加数据模板
class AddView(View):
def get(self, request):
return render(request, "add.html")
def post(self, request):
#变量名=request.POST.get("表单里定义的变量") 是为了获取表单里的值
name = request.POST.get("name")
age = request.POST.get("age")
sex = request.POST.get("sex")
score = request.POST.get("score")
try:
#模型类.objects.create(字段名=值,...) 把数据存到数据库里
Student.objects.create(name=name, age=age, sex=sex, score=score)
except Exception as e:
print(e)
return HttpResponse("添加失败")
#添加成功跳转到主页面
return redirect("/data/")
#如果要跳转的页面有动态路由,可以用格式化法传参
#例如:return redirect(f"/data/{id}/")
给类视图配置路由
from django.urls import path
from myapp import views
urlpatterns = [
path('add/', views.AddView.as_view())
]
Django对数据库的修改
先创建一个HTML文件---update.html
Title
在子应用的views里写修改视图
class UpdateView(View):
def get(self, request, pk):
return render(request, "update.html")
def post(self, request, pk):
# 获取修改之后的数据完成修改的操作
name = request.POST.get('name')
price = request.POST.get('price')
kind = request.POST.get('kind')
# 此时三者就是修改的数据 模型类.object.filter(条件).update(字段=值...)
try:
Movies.objects.filter(id=pk).update(name=name, price=price, kind=kind)
except Exception as e:
print(e)
return HttpResponse("修改失败")
# 格式化输出
return redirect(f'/movies/{kind}/')
给类视图配置路由
from django.urls import path
from myapp import views
urlpatterns = [
#修改是根据id来修改,所以要用动态路由
path('update//', views.UpdateView.as_view())
]
Django对数据库的删除
在子应用的views里写删除视图
class DelView(View):
def get(self, request, pk):
try:
# 根据id来删除,根据brand_id来展开详情
Car.objects.get(id=pk).delete()
except Exception as e:
print(e)
return HttpResponse("删除失败")
return HttpResponse("删除成功")
给类视图配置路由
from django.urls import path
from myapp import views
urlpatterns = [
# 因为要根据id来删除,所以要用动态路由传参
path("delete//", views.DelView.as_view()),
]
Django对数据库的查询
先创建一个HTML文件---one.html
Title
查询展示
{#根据接收到的值进行判断,如果有值那么就显示对应的数据 否则就提示该条数据不存在#}
{% if foo %}
| 编号 |
名字 |
年龄 |
性别 |
分数 |
| {{ foo.id }} |
{{ foo.name }} |
{{ foo.age }} |
{{ foo.sex }} |
{{ foo.score }} |
{% else %}
{{ info }}
{% endif %}
在子应用的views里写删除视图
# 类视图---查询单条数据模板
class OneView(View):
def get(self, request):
return render(request, "one.html")
def post(self, request):
# 根据获取的id 进行查询
id1 = request.POST.get("id")
# 根据获取的id进行查询 模型类.objects.get(id=1)
try: # 存放可能出现异常的代码
stu = Student.objects.get(id=id1)
except Exception as e: # 捕获异常然后存到e里
print(e)
return render(request, "one.html", {"info": "该数据不存在"})
# 将值传递给模板
return render(request, "one.html", {"foo": stu})
给类视图配置路由
from django.urls import path
from myapp import views
urlpatterns = [
path('one/', views.OneView.as_view()),
]