用于自己记录学习
以数据表:用户信息 作为示范
一.渲染用户列表页面
1.后端视图
def user_list(request):
user_list=User.objects.all()
return render(request,'user_list.html',{"user_obj_list":user_list})
获取数据表中的所有用户信息,之后将获取到的用户对象列表传递给模板,并使用render
函数渲染指定的HTML模板文件
2.对应的前端部分代码
{% for user_obj in user_obj_list %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ user_obj.id }}</td>
<td>{{ user_obj.real_name }}</td>
<td>{{ user_obj.username }}</td>
<td>{{ user_obj.mobile }}</td>
<td>{{ user_obj.password }}</td>
<td>
<a href="/edit_user/?id={{user_obj.id}}">修改</a>
<a href="/delete_user/?id={{user_obj.id}}">删除</a>
</td>
</tr>
{% for user_obj in user_obj_list %}用于遍历user_obj_list中的每一个元素
{{ forloop.counter }}是for循环计数器,用作序号
3.同时要记得写路由
urlpatterns = [
path('user_list/', views.user_list)]
二.添加用户信息
1.后端视图代码
def add_user(request):
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
mobile = request.POST.get('mobile')
real_name = request.POST.get('real_name')
User.objects.create(username=username,password=password,mobile=mobile,real_name=real_name)
return redirect('/user_list/')
return render(request, "add_user.html")
接收前端传过来的信息,并在数据库中进行创建
2.前端部分代码
<form action="" method="post">
<p>
用户名<input type="text" name="username">
</p>
<p>
密码<input type="text" name="password">
</p>
<p>
手机号<input type="text" name="mobile">
</p>
<p>
真名<input type="text" name="real_name">
</p>
<p>
<button type="submit" class="btn">提交</button>
</p>
</form>
3.记得写路由
urlpatterns = [
path('add_user/', views.add_user)]
三.编辑用户信息
def edit_user(request):
if request.method=='POST':
id=request.POST.get('id')
username=request.POST.get('username')
password = request.POST.get('password')
mobile = request.POST.get('mobile')
real_name = request.POST.get('real_name')
user_obj = User.objects.get(id=id)
user_obj.username=username
user_obj.password=password
user_obj.mobile=mobile
user_obj.real_name=real_name
user_obj.save()
return redirect('/user_list/')
else:
id=request.GET.get('id')
user_obj=User.objects.get(id=id)
user_obj_list=User.objects.all()
return render(request, 'edit_user.html', {'user_obj':user_obj,"user_obj_list": user_obj_list})
对应前端代码
<form action="" method="post"> <p> <input type="hidden" name="id" value="{{ user_obj.id }}"> </p> <p> 用户名:<input type="text" name="username" value="{{ user_obj.username }}"> </p> <p> 密码:<input type="text" name="password" value="{{ user_obj.password }}"> </p> <p> 手机号:<input type="text" name="mobile" value="{{ user_obj.mobile }}"> </p> <p> 真名:<input type="text" name="real_name" value="{{ user_obj.real_name }}"> </p> <p> <button type="submit" class="btn">提交</button> </p> 记得写视图
四.删除用户信息
def delete_user(request):
id=request.GET.get('id')
User.objects.filter(id=id).delete()
return redirect("/user_list")
五.查找用户信息
def search_user(request):
if request.method == 'POST':
name = request.POST.get('search_user_name')
users_search_list = User.objects.filter(real_name=name).all()
return render(request, 'search_user_name.html', {'user_search_list': users_search_list})
else:
return render(request, 'search_user_name.html', {})
对应部分前端代码
<form action="{% url 'search_user' %}" method="post" id="search_user">
<div class="form" style="display: flex;">
<input type="text" class="form-control" placeholder="输入用户姓名" name="search_user_name">
<span class="input-group-btn">
<button class="btn btn-default" type="submit" id="submit">搜索</button>
</span>
</div></form>
显示部分
{% for user_obj in user_search_list %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ user_obj.id }}</td>
<td>{{ user_obj.real_name }}</td>
<td>{{ user_obj.username }}</td>
<td>{{ user_obj.mobile }}</td>
<td>{{ user_obj.password }}</td>
<td>
<a href="/edit_user/?id={{user_obj.id}}">修改</a>
<a href="/delete_user/?id={{user_obj.id}}">删除</a>
</td>
</tr>
{% endfor %}
记得要写视图
urlpatterns = [
path('user_list/',views.user_list),
path('add_user/',views.add_user),
path('edit_user/',views.edit_user),
path('search_user/',views.search_user, name='search_user'),
]