前端渲染数据库数据
from django.shortcuts import render, HttpResponse, redirect
from app01 import models
def librarylist(request):
# 获取数据库信息
press_list = models.Press.objects.all()
for i in press_list:
print(i)
print(i.name)
print(i.id)
# 传入前端页面
return render(request, "press_list.html", {"press_list": press_list})
前端页面循环渲染
{% for i in press_list %}
<tr>
<td>{{ forloop.counter}}</td>#循环序列号
<td>{{ i.id }}</td>
<td>{{ i.name }}</td>
</tr>
{% endfor %}
通过前端页面添加数据至数据库
<form action="" method="post">
出版社名称:<input type="text" name="press_name"><span>{{ error }}</span>
<button>提交</button>
</form>
页面路径
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('librarylist/', views.librarylist),
path('adddata/', views.adddata),
path('press_del/', views.press_del),
path('press_updata/', views.press_updata)
]
# 新增内容
def adddata(request):
# post请求 获取数据
# 增加至数据库
# 返回一个重定向
if request.method == "POST":
press_name = request.POST.get("press_name")
if models.Press.objects.filter(name=press_name):
# 判断数据库是否有重复提示
return render(request, 'adddata.html', {"error": '重复添加'})
if not press_name:
return render(request, 'adddata.html', {'error': '名称不能为空'})
print(press_name)
models.Press.objects.create(name=press_name)
return redirect('/librarylist/')
return render(request, "adddata.html", {'error': ''})
# 删除
def press_del(request):
if request.method == "GET":
press_id = request.GET.get("id")
# models.Press.objects.get(id=press_id).delete()#查询一个对象,删除该对象
# 未查询到不会删除
models.Press.objects.filter(id=press_id).delete() # 查询一个对象列表,删除该对象列表里面的所有像
return redirect("/librarylist/")
# 更新
def press_updata(request):
press_id = request.GET.get("id")
pub_obj = models.Press.objects.get(id=press_id)
if request.method == "GET":
return render(request, 'press_updata.html', {'pub_obj': pub_obj})
else:
press_name = request.POST.get("press_name")
pub_obj.name = press_name # 只是在内存中修改了数据
pub_obj.save() # 将修改数据保存
print(press_name)
return redirect('/librarylist/')
ORM对象关系映射
- 类对应表
- 对象对应数据行(记录)
- 属性对应字段
press_list = models.Press.objects.all() #查询所有
press_name = request.POST.get("press_name")# 查询一个 保证唯一, 多个会报错
models.Press.objects.filter(name=press_name) #查询多个
models.Press.objects.create(name=press_name) #增加
models.Press.objects.get(id=press_id).delete()#查询一个对象,删除该对象
# 未查询到不会删除
models.Press.objects.filter(id=press_id).delete() # 查询一个对象列表,删除该对象列表里面的所有像
模板语法
return render(request, "index.html", {"value": key})
前端页面渲染
<div class="form-group {% if error %}has-error{% endif %} ">
<label for="inputEmail3" class="col-sm-2 control-label">书籍名称:</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="book_name" placeholder="请输入书籍名称">
<span class="help-block">{{ error }}</span>
</div>
</div>
{% if error %}
条件成立执行语句
{% endif %}