Django模板之发布会列表及搜索功能(十一)

标签: django bootstrap
9人阅读 评论(0) 收藏 举报
分类:

本章将使用Bootstrap前端框架结合Django来开发web页面。
Bootstrap是基于html,css,javascript的一个css/html框架。>
[bootstrap中文网](http://www.bootcss.com>
pypi仓库地址

1.Django-bootstrap3安装完成之后,在../FirstProject/settings.py文件中添加“bootstrap3”应用

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'FirstApp',
'bootstrap3',
]

2.发布会的管理

回到视图层的开发中,打开../FirstApp/views.py文件,修改event_manage()视图。

# 发布会管理
@login_required
def event_manage(request):
    event_list = Event.objects.all()
    username = request.session.get('user', '')
    return render(request, "event_manage.html", {"user":username, "events":event_list})

导入model中的event类,通过event.objects()查询所有发布会对象(数据),并通过render()方法附加在event_manage.html页面返回给客户端。
打开并编写../templates/event_manage.html页面

<!DOCTYPE html>
<html>
<head>
    {% load bootstrap3 %}
    {% bootstrap_css %}
    {% bootstrap_javascript %}
    <title>Guest Manage</title>
</head>
<body role="document">
    <!--导航栏-->
    <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 class="active"><a href="#">发布会</a></li>
                    <li><a href="/guest_manage/">嘉宾</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="page-header" style="padding-top: 60px;">

        <div id="navbar" class="navbar-collapse collapse">

          <form class="navbar-form" method="get" action="/search_name/">

            <div class="form-group">

              <input name="name" type="text" placeholder="名称" class="form-control">

            </div>

            <button type="submit" class="btn btn-success">搜索</button>

          </form>

        </div><!--/.navbar-collapse -->

      </div>
    <!--发布会列表-->
    <div class="row" style="padding-top: :80px;">
        <div class="col-md-6">
            <table class="table table-striped">
                <thead>
                    <tr>
                        <th>id</th><th>名称</th><th>状态</th><th>地址</th><th>时间</th>
                    </tr>
                </thead>
                <tbody>
                    {% for event in events %}
                    <tr>
                        <td>{{event.id}}</td>
                        <td>{{event.name}}</td>
                        <td>{{event.status}}</td>
                        <td>{{event.address}}</td>
                        <td>{{event.start_time}}</td>
                    </tr>
                    {% endfor %}
                </tbody>
            </table>
        </div>
    </div>

</body>
</html>

{% load bootstrap3 %}
加载bootstrap3应用
{% bootstrap_css %}
加载css文件
{% bootstrap_javascript %}
加载javascript文件
{% %}为Django模板语言的标签。

通过Django模板语言,循环打印发布id,name等字段,Django的for循环语句需要有对应endfor来表示语句的结束;同样,if分支语句也要有endif来表示语句结束。

3.在../FirstProject/urls.py文件中添加搜索路径的路由。

from django.conf.urls import url
from django.contrib import admin
from FirstApp import views

urlpatterns = [
    url(r'^$', views.index),
    url(r'^admin/', admin.site.urls),
    url(r'^index/$', views.index),
    url(r'^login_action/$', views.login_action),
    url(r'^event_manage/$', views.event_manage),
    url(r'^accounts/login/$', views.index),
    url(r'^search_name/$', views.search_name),
]

4.打开../FirstApp/views.py文件,创建search_name()视图函数。

# 发布会名称搜索
@login_required
def search_name(request):
    username = request.session('user', '')
    search_name = request.GET.get("name", "")
    event_list = Event.objects.filter(name__contains=search_name)
    return render(request, "event_manage.html", {"user":username, "events": event_list})

以上为今天更新内容,接下来会更新嘉宾管理和签到功能。

查看评论

实现Django的全文检索功能(二):集成haytack

上篇我们已经学会了使用Whoosh进行中文全文检索的基本方法,这样基本上你就可以在Django自己去建立索引、更新索引并进行搜索了。 在Django中,我们一般是将文章之类的数据放在数据库model...
  • wenxuansoft
  • wenxuansoft
  • 2012-11-11 11:34:42
  • 15671

Django添加全文搜索功能入门篇

感觉网络上关于Django全文搜索的中文文章太少,并且讲的也不是很到位,就是简单介绍了怎么配置,并没有说这样配置有什么用,所以依然很迷茫。所以希望我这篇文章能够帮助到后来人。 转载说明来源 ...
  • tenlee
  • tenlee
  • 2016-08-30 17:04:56
  • 593

实现Django的全文检索功能(一):选择Whoosh全文检索引擎

Django没有内置全文检索功能,这方面的资料也很少。 有搜到两篇,一篇是使用 在django应用上使用sphinx全文搜索 还有一篇是使用Whoosh的,看这里 其中whoo...
  • wenxuansoft
  • wenxuansoft
  • 2012-11-10 20:36:50
  • 22617

Django的搜索功能的设置

利用Django实现的功能如下: 添加普通搜索功能 添加可高亮显示的搜索功能(利用whoosh库) 具体实现过程如下 1.普通搜索显示: 在views添加搜索视图函数 from ...
  • liuredflash
  • liuredflash
  • 2018-03-11 20:59:44
  • 68

Django学习笔记(二)----签到设计逻辑及数据库基本操作API

1.发布会签到系统设计原理签到系统设计原理: 签到功能页面属于某一场独立发布会。在发布列表中,每一条发布会都含有一个“签到”链接,用来打开对应签到页面。 签到链接根据发布会id来确认:/sign...
  • cd028zxcc106
  • cd028zxcc106
  • 2018-01-04 09:58:40
  • 234

django 使用全局搜索功能

安装需要的包1 第一步: 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理。haystack:全文检索的框架,支持whoosh、solr、Xapian、Elast...
  • Demo_3
  • Demo_3
  • 2017-07-02 19:29:28
  • 1236

Django的全文检索功能(一):haystack全文检索的框架

全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack:django的一个包,属于一种全文检索的框架,可以方便地对model里面的内容进行索引、搜索...
  • shilei123456789666
  • shilei123456789666
  • 2018-01-21 14:00:48
  • 74

第四章:Django模型——添加 Event发布会的表 报错

1. 在 admin 管理系统中添加 Event发布会时报错。      报错的原因是由于 request 返回是报错 ,查找原因发现是:      2. 查看自己的python版本...
  • m0_37551982
  • m0_37551982
  • 2017-07-20 11:49:19
  • 116

实现Django网站列表自动分页

 原始连接:http://django-china.cn/topic/53/ 网站,特别是论坛,就如本社区一样,肯定会遇到某个页面要显示列表(比如本社区的首页,要显示主题列表),那肯定...
  • savionchen
  • savionchen
  • 2014-12-26 14:13:02
  • 1139

使用haystack实现django全文检索搜索引擎功能

前言 django是python语言的一个web框架,功能强大。配合一些插件可为web网站很方便地添加搜索功能。 搜索引擎使用whoosh,是一个纯python实现的全文搜索引擎,小巧简单。 中...
  • huohuotu
  • huohuotu
  • 2017-08-27 12:25:25
  • 534
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 351
    排名: 23万+