django 学习(十三)—— 设计嘉宾管理

一、嘉宾列表

新建.../templates/guest_manage.html页面。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    {% load bootstrap3 %}
    {% bootstrap_javascript %}
    {% bootstrap_css %}
    <meta charset="UTF-8">
    <title>Guest Manage</title>
</head>
<body>
    <!--导航栏-->
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <a class="navbar-brand" href="/event_manage/">Guest Manage System</a>
            </div>
            <div id="navbar" class="collapse navbar-collapse">
                <ul class="nav navbar-nav">
                    <li><a href="/event_manage/">发布会</a> </li>
                    <li class="active"><a href="#">嘉宾</a> </li>
                </ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#">{{ user }}</a> </li>
                    <li><a href="/logout/">退出</a> </li>
                </ul>
            </div>
        </div>
    </nav>
    <!--嘉宾列表-->
    <div class="row" style="padding-top: 10px;">
        <div class="col-md-6">
            <table class="table table-striped">
                <thead>
                <tr>
                    <th>id</th><th>名称</th><th>手机</th><th>Email</th><th>签到</th><th>发布会</th></tr>
                </tr>
                </thead>
                <tbody>
                {% for guest in guests %}
                     <tr>
                        <td>{{ guest.id }}</td>
                        <td>{{ guest.realname }}</td>
                        <td>{{ guest.phone }}</td>
                        <td>{{ guest.email }}</td>
                        <td>{{ guest.sign }}</td>
                        <td>{{ guest.event }}</td>
                    </tr>
                {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
</body>
</html>

2.在.../guest/urls.py文件中添加嘉宾路径的路由。

 

 

 3.打开.../sign/views.py文件,创建guest_manage()视图函数

from sign.models import Event, Guest 
…… 
# 嘉宾管理 
@login_required 
def guest_manage(request): 
    username = request.session.get('user', '') 
    guest_list = Guest.objects.all()  # 通过Guest.objects.all()查询所有嘉宾对象(数据)
    return render(request, "guest_manage.html", {"user": username, "guests": guest_list})   #并通过render()方法附加在guest_manage.html页面,并返回给客户端。

二、添加搜索功能

1.修改../guest_manage.html,添加嘉宾搜索表单

<!--嘉宾搜索表单-->
    <div class="page-header" style="padding-top: 60px;">
        <div id="navbar" class="navbar-collapse collapse">
            <!-- method="get"为HTTP请求方式;action="/search_guest_name/"搜索请求路径-->
            <form class="navbar-form" method="get" action="/search_guest_name/">
                <div class="form-group">
                    <!-- name="name"搜索输入框的name属性值-->
                    <input name="name" type="text" placeholder="名称" class="form-control">
                </div>
                <button type="submit" class="btn btn-success">搜索</button>
            </form>
        </div>
    </div>
<!--嘉宾列表-->

2.添加搜索嘉宾路由

3.创建search_guest_name()函数

 

 三、添加分页器

 Django提供了Paginator类来实现分类功能

 1.打开.../sign/views.py文件,修改guest_manage()视图函数。

 

 

 

 2.修改../guest_manage.html,添加分页器

 <!--列表分页器-->
    <div class="pagination">
        <span class="step-links">
            {% if guests.has_previous %}
                <a href="?page={{ guests.previous_page_number }}">上一页</a>
            {% endif %}
            <span class="current">
                Page {{ guests.number }} of {{ guests.paginator.num_pages }}.
            </span> 
            {% if guests.has_next %}
                <a href="?page={{ guests.next_page_number }}">下一页</a>
            {% endif %}
        </span>
    </div>
....

 

 

posted @ 2022-01-12 11:07  海浪。  阅读(116)  评论(0)    收藏  举报