本章将使用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})
以上为今天更新内容,接下来会更新嘉宾管理和签到功能。