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

xiaoxiao2021-02-28  26

本章将使用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})

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

转载请注明原文地址: https://www.6miu.com/read-1450108.html

最新回复(0)