the django travel(two)

时间:2023-03-09 01:31:43
the django  travel(two)

一:django路由系统:

注意:我们在urls.py中 定义url的时候,可以加$和不加$,区别的是:加$正则匹配的时候,比如:'/index/$'只能匹配'/index/'这样的url 不能匹配'/index/1'。而不加$的可以进行模糊匹配的。

至于加不加 $由自己的需求来定。

a)在项目中路由默认配置在总项目下得urls.py文件中,如下:

 from django.conf.urls import url
from django.contrib import admin
from ops import views
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^login/', views.login),
url(r'^regis/', views.regis),
url(r'^home/', views.home),
url(r'^menu/', views.menu),
url(r'^jquery/', views.jquery),
url(r'^hostinfo/', views.host_son),
url(r'^detail/', views.detail),
url(r'^input/', views.input),
url(r'^delete/', views.delete),
url(r'^chan_pwd/', views.chan_pwd),
url(r'', views.login),
]

当客户端连接到达django底层的socket时候,通过这个路由表。来匹配客户端的url。匹配(正则匹配)顺序从上到下,依次匹配,遇到匹配的url,停止匹配。django通过反射来实现,将用户的请求给views.py模块对应的函数来处理,函数将客户端的请求

处理之后,并返回给客户端结果,可以是一个跳转(redirect)也可以是返回一个字符串(HttpResponse),也可以是携带变量和页面(render)。

当然我也可以设置一个默认的url,当上面所有的都不匹配的url转发到默认url:

  url(r'', views.login),

上面默认将不匹配的url转发到登录页面。

b)动态路由。

需求场景:

1:比如说博客园中:

aaarticlea/png;base64,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" alt="" />

上图中我们可以看见分页中,如果页数很多,我们不能对每个页面写一个url,这不实际,那怎么办呢?通过正则表达式来实现动态路由。

比如上面的分页我们可以这么写:

 url(r'^user_list/(\d+)$', views.user_list),

如上url,通过正则(\d+)来匹配一个数字。来实现匹配多个url族。由后端函数user_list来处理。

 def user_list(request,uid):
print(uid)
return HttpResponse(uid)

如url,当请求进来的时候,会自动将后面的(\d+)的值传给user_list函数。

aaarticlea/png;base64,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" alt="" />

2:关于分页:

 def user_list(reuqest):
page=request.GET.get('page')
return HttpResponse(page)

注意:当我们get请求的时候,比如url如:http://127.0.0.1:8000/hostinfo/?page=1 。?page=1 我们可以通过:request.GET.get('page') 获取page这个变量。分页就是采用这个功能来实现。

3:动态url传入多个参数?

 url(r'^user_list/(\d+)/(\d+)$', views.user_list),

后面函数接收的时候,多个参数接收,他们一一对应的,需要注意!参数之间用/隔开。

 def user_list(request,uid,uid1):
print(uid)
return HttpResponse(uid+uid1)

aaarticlea/png;base64,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" alt="" />

4:动态url传递key:value形式:

原理是通过正则表达式来实现:

  url(r'^user_list/(?P<v1>\d+)/(?P<V2>\d+)$', views.user_list),

?p<v1>表示后面的数字的key值为v1。后面的函数接收参数需要写成key形式。

 def user_list(request,v1,v2):
print(v1,v2)
return HttpResponse(v1+v2)

aaarticlea/png;base64,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" alt="" />

这种的情况下,变量的位置可以随意,这个是通过key值来获取前端传的参数。

5:路由分级

当我们的子程序越来越多的情况下,把所有的url放在一个配置文件中,显着很笨拙也很不容易管理。所以有url分级。通过前端urls.py文件转到后面的子程序urls.py的程序。进行转发。

   url(r'^app01/', include("app01.urls")),

app01是我们注册的子程序。然后在app01下创建我们的urls.py文件。可以通过:hostip:port/app01/index  or  hostip:port/app01/login进行访问。

三:Ajax数据提交:

ajax是基于jquey的封装的,可以在页面不刷新的情况下,进行后台数据提交验证,常用于非表单的提交的、用户名和密码验证等。

code:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/css/font-awesome-4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="/static/css/menu/menu.css">
<link rel="short icon" href="/static/img/6.png">
{# <link rel="stylesheet" href="/static/css/bootstrap.min.css">#}
{% block css %}
{% endblock %}
</head>
<body>
<div class="pd_header">
<span>主机管理后台</span>
<a href="/login/"><button class="ko">账号注销</button></a>
{# <div class="ok">登录用户:{{ username}}</div>#}
<div style="clear: both;"></div>
</div>
<div class="menu">
<div class="body">
<p class="menu2" onclick="showmen(this);"><i class="fa fa-desktop left" aria-hidden="true"></i>
主机管理<i class="fa fa-angle-double-down a" aria-hidden="true"></i></p>
<div class="hide b">
<p class="d">
<i class="fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="/hostinfo/?page=1">主机信息</a>
</p>
<p><i class=" fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="/home/?page=1" >信息修改</a></p>
</div>
</div>
<div class="body">
<p class="menu2" onclick="showmen(this)"><i class="fa fa-apple left" aria-hidden="true"></i>
资产管理 <i class="fa fa-angle-double-down a" aria-hidden="true"></i></p>
<div class="hide b">
<p class="d"> <i class="fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="/input/" >资产录入</a></p>
<p><i class="fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="#" >xx</a></p>
</div>
</div>
<div class="body">
<p class="menu2" onclick="showmen(this)"> <i class="fa fa-user left" aria-hidden="true"></i>
用户管理 <i class="fa fa-angle-double-down a" aria-hidden="true"></i></p>
<div class="hide b">
<p class="d"><i class="fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="/chan_pwd/" >密码修改</a></p>
<p class="d"><i class="fa fa-angle-right c " aria-hidden="true"></i>
<a id="" style="border: 0" href="#" >待定</a></p>
</div>
</div>
</div>
<div class="pd_content">
{% block content %} {% endblock %}
{% block div_page %} {% endblock %}
</div> <script src="/static/js/homejs/jquery-1.12.4.js"></script>
{% block js %}
{% endblock %}
<script>
function showmen(obj){ $(obj).next().removeClass('hide');
$(obj).parent().siblings().find('.b').addClass('hide');
}
function CheckVal(ths){
if ($('#test').val().length==){
var tag=document.createElement('div');
tag.innerText='输入不能为空';
$(ths).after(tag);
return false
}
}
function ShowMenu(ths){
$('#1').parent().parent().removeClass('hide');
$('#1').parent().addClass('active');
}
function RemoveS(ths){
$(ths).siblings().remove('div')
}
function CatchInfo(ths){
var id=$(ths).parent().siblings().first().text();
$.ajax(
{
url:"/detail/",
type:"POST",
data:{
'id':id
} }
)
}
function Delete(ths){
/*
功能:该函数主要判断用户删除数据返回情况。
*/
var a=[];
$('input').each(
function(){
if ($(this).prop('checked')){
var id=$(this).parent().next().text().trim();
$(this).parent().parent().remove();
$.ajax({
url:"/delete/",
type:"POST",
data:{"id":id},
success:function(data){
if(data==''){
a.push(data) }else {
a.push('')
}
}
})
}
}
);
if($.inArray('',a)==-){
console.log(a);
alert("删除成功!!");
} }
function Comm_Data(ths){
var b=[];
$('input[type=checkbox]').each(
function(i){
var a=[];
if ($(this).prop('checked')){
$(this).parent().siblings().each(
function(){
if($(this).attr('edit')){
console.log($(this).children().val());
a.push($(this).children().val())
}
} );
console.log(a);
$.ajax(
{
url:'/home/',
type:'POST',
traditional :true,
data:{"uu":a},
success:function(data){
if (data=='') {
b.push('')
}else {
b.push('')
}
}
}
)
}
}
);
if ($.inArray('',b)==-){
console.log(b);
alert('数据更新成功!')
}
}
{% block js1 %}
{% endblock %}
</script>
</body>
</html>

其中:

         function Delete(ths){
/*
功能:该函数主要判断用户删除数据返回情况。
*/
var a=[];
$('input').each(
function(){
if ($(this).prop('checked')){
var id=$(this).parent().next().text().trim();
$(this).parent().parent().remove();
$.ajax({
url:"/delete/",/*提交的url,即向哪个url提交数据。
type:"POST",/*提交数据的方法。
data:{"id":id},/*提交的数据类型。注意是字典形式。
success:function(data){/*data是后台返回的数据,success后面的函数,是提交数据之后接收后端数据进行操作的函数。自动执行。可以在这里进行判断后台是否正确处理我们的请求。
if(data==''){
a.push(data) }else {
a.push('')
}
}
})
}
}
);
if($.inArray('',a)==-){
console.log(a);
alert("删除成功!!");
} }

注意的是:success:function(data){}中的data是后台返回的数据如果是render返回的页面 那data就是文件的字符串页面如果是HttpResponse,那data就是接收的字符串。

后端接收:接收数组的时候需要getlist:request.POST.getlist('uu')

 def home(request):
'''
功能:该函数主要功能是后台修改数据页面。
:param request:
:return:返回用户请求信息。
'''
if request.method=='GET':
count=Hostinfo.objects.all().count()
page_po=request.GET.get('page',None)
page_obj=div_page.Pager(page_po)
start=page_obj.start
end=page_obj.end
page=page_obj.page_str(count,'/home/')
host_obj=Hostinfo.objects.all()[start:end]
return render(request, 'host_mod_son.html',{'data':host_obj,'page_str':page})
# return render(request, 'host_mod_son.html',{'data':host_obj,'page_str':page})
elif request.method=='POST':
update_list=request.POST.getlist('uu')
print(update_list)
id=update_list[]
hostname=update_list[]
ip=update_list[]
status=update_list[]
host_info=Hostinfo.objects.filter(id=id)
if hostname!=host_info[].host:
Hostinfo.objects.filter(id=id).update(host=hostname)
if ip !=host_info[].ip:
Hostinfo.objects.filter(id=id).update(ip=ip)
if status !=host_info[].stat:
Hostinfo.objects.filter(id=id).update(stat=status)
return HttpResponse('')

注意:当我们用ajax传数组的时候需要加入:traditional :true,

                       $.ajax(
{
url:'/home/',
type:'POST',
traditional :true,/*传递数组的时候使用。
data:{"uu":a},
success:function(data){
if (data=='') {
b.push('')
}else {
b.push('')
}
}
}
)

多条数据提交:

<script>
function Ajaxsubmit(){
var array_users = [
{'username':'evil','weight':},
{'username':'liu','weight':},
{'username':'evil_liui','weight':}, ];
$.ajax({
url:"/ajax_mdata/",
type:'POST',
data:{data:array_users},
success:function(arg){ }
})
}
</script>

上面只是简单的返回数据,为了返回的数据更规范化:

 import json

 def ajax_data(request):
ret = {'status':True,'error':''}
try:
print request.POST
except Exception,e:
ret['status'] = False
ret['error'] = str(e)
#在上面如果他出错我就把他ret[status] = False
return HttpResponse(json.dumps(ret))

html:

 <script>
function Ajaxsubmit(){
var array_users = [
{'username':'evil','arg':},
{'username':'liu','arg':},
{'username':'evil_liu','arg':}, ];
$.ajax({
url:"/ajax_mdata/",
type:'POST',
tradition: true,
data:{data:JSON.stringify(array_users)},
success:function(arg){
var callback_dict = $.parseJSON(arg);//这里把字符串转换为对象
//然后咱们就可以判断
if(callback_dict){//执行成功了
//简单测试
alert('提交成功')
}else{//如果为False执行失败了
alert(callback_dict.error)
} }
})
}
</script>

四:模板

1:母板:

aaarticlea/png;base64,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" alt="" />

如上的后台管理页面,点击左侧的菜单,无论点击那个子菜单,整个页面只有C部分进行变换,我们把A  B部分叫做母板,变化的C叫做子板。

我们创建一份母板,然后子板继承母板既可。以后不用在写母板部分的代码,类似有python中的模块导入的意思。

母板:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/css/font-awesome-4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="/static/css/menu/menu.css">
<link rel="short icon" href="/static/img/6.png">
{% block css %}
{% endblock %}
</head>
<body>
<div class="pd_header">
<span>主机管理后台</span>
<a href="/login/"><button class="ko">账号注销</button></a>
<div style="clear: both;"></div>
</div>
<div class="menu">
<div class="body">
<p class="menu2" onclick="showmen(this);"><i class="fa fa-desktop left" aria-hidden="true"></i>
主机管理<i class="fa fa-angle-double-down a" aria-hidden="true"></i></p>
<div class="hide b">
<p class="d">
<i class="fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="/hostinfo/?page=1">主机信息</a>
</p>
<p><i class=" fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="/home/?page=1" >信息修改</a></p>
</div>
</div>
<div class="body">
<p class="menu2" onclick="showmen(this)"><i class="fa fa-apple left" aria-hidden="true"></i>
资产管理 <i class="fa fa-angle-double-down a" aria-hidden="true"></i></p>
<div class="hide b">
<p class="d"> <i class="fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="/input/" >资产录入</a></p>
<p><i class="fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="#" >xx</a></p>
</div>
</div>
<div class="body">
<p class="menu2" onclick="showmen(this)"> <i class="fa fa-user left" aria-hidden="true"></i>
用户管理 <i class="fa fa-angle-double-down a" aria-hidden="true"></i></p>
<div class="hide b">
<p class="d"><i class="fa fa-angle-right c" aria-hidden="true"></i>
<a id="" style="border: 0" href="/chan_pwd/" >密码修改</a></p>
<p class="d"><i class="fa fa-angle-right c " aria-hidden="true"></i>
<a id="" style="border: 0" href="#" >待定</a></p>
</div>
</div>
</div>
<div class="pd_content">
{% block content %} {% endblock %}
{% block div_page %} {% endblock %}
</div> <script src="/static/js/homejs/jquery-1.12.4.js"></script>
{% block js %}
{% endblock %}
</body>
</html>

子板:

 {% extends 'layout/menu.html' %}
{% block content %}
<div>
<h3>数据录入</h3>
</div>
<form action="/input/" method="post">
<table class="table2">
<tr>
<th>IP</th>
<th>port</th>
<th>status</th>
<th>hostname</th>
</tr>
<tr>
<td><input lable="IP" onfocus="Remove(this)" name="IP" type="text" /></td>
<td><input lable="port" onfocus="Remove(this)" name="port" type="text" ></td>
<td><input lable="status" onfocus="Remove(this)" name="status" type="text"/></td>
<td><input lable="hostname" onfocus="Remove(this)" name="hostname" type="text"/></td>
</tr>
</table>
<input type="submit" style="font-family:微软雅黑" onclick=" return Make(this)" value="提交数据" />
<p style="color: red;font-family:“微软雅黑">{{ messgae }}</p>
</form>
{% endblock %}
{% block js %}
<script src="/static/js/input.js"></script>
{% endblock %}
{% block js1 %}
function ShowMenu1(ths){
$('#3').parent().parent().removeClass('hide');
$('#3').parent().addClass('active');
}
ShowMenu1()
{% endblock %}

效果:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABMwAAAE/CAIAAAA16MgkAAAgAElEQVR4nO3dz4sc94H38fo3nH/Bl0zAlwHd5rAHHZ6LrPigSQ6i5+CDxwchHNnYCGfdaz2Lx/hg2ciei2E7fngOwjAkY2+SZ/GwJCxZ9iESJvN4s/QaITsKnufxj4WxYZ5D/6quH91VM1VT1fV9vXhD7FFPT0sqQn9c1d3R+x/9qyRJkiRJlRRFvzmRJEmSJKmamn8EkiRJkqTO1PwjkCRJkiR1puYfgSRJkiSpMzX/CCRJkiRJnan5RyBJkiRJ6kzNPwJJkiRJUmdq/hFIkiRJkjpT849AkiRJktSZmn8EkiRJkqTO1PwjkCRJkiR1puYfgSRJkiSpMzX/CCRJkiRJnan5RyBJkiRJ6kzNPwJJkiRJUmdq/hFIkiRJkjpTlff13k4U9Up+12H0eFT+u/LuJ4ou7uU/tih6fKf5P3FJkiRJ6nBV3tfFqPyQq2hk9nuLFuZvTqKn16NoPXqv6T/uWXtRWr/wn1ihW0qSJEnSuVfx3Y125tOHhb8la2SOFmOm7HGVNdimHt9ZcoOLe9HT66V/aU5ivi78cQss3+eTE7ZOyUqSJElqZ1Xf42H0+Hr0dP4ZxYzbR2cbmZPdtWC5XVx4g6ZGZvr38t7icb7skmBJkiRJarzS31BodOVLnuTMH5mJW46+mB5m0wHZn7zwMnGb+KsxL6Z+VqL0jx79fmf3uTe7t9kNskZmxScbFy7Miy6glSRJktSOSn9DJSMz907Wo/fKjMzpOc/R1/s74yU2+tfxvOxFj4+G5WHU35n9lMzfXUtH5sKFOfptpv/EJEmSJOn8q/TuRluowPvrVDUyf3MSXUz8uNj1uuOfkjpNenGn9MhcotaRObn4dvGGvJi/QiVJkiTp3Kr07gqPzGnjs3BnuFx2caOJWPwUX4Uj89T6qcdT8DduZ0qSJElqvErvrvzIHI+oKl6TeTqJSVbh5bKn1o//YUY5f54L3+7IzpQkSZLUVJXeXdmROV1KXRyZZ7pcdtlb5i7lM04kSZIkNVKld1dyZE7fsSbqRRdj0670yCxz7jTx00cjM+9DU54+bOw1mQs+x2XJPe8Vu5kkSZIk1dBpvufUbzCbOG042oePp25wmpFZ5grV0T23fGSepfd2lnxSiyRJkiTV1Gm+p5KROd54O7PPyZxuy9O88U/5kZlZ9ZfLlrnw1WddSpIkSVr1Kr27MpfLjs9AHs5G5rRTj8ylJw8z77nUDQr9oL3Yoj7byFxw0Wwen5YpSZIkqcEqvbvCI3O0nS7uTb5lfmQmTx7GvuX8z2Rm/qDFIzN+Ie7oN7h0/Wb+ln9jZEqSJElatSq9u8Ijc3aJadbIzHwvn7mReRg9foZPDSkxMgvfbfxK4Lk7qWJkFtyNZT8UVJIkSZIqr9K7Kzwy39uZ22BzIzNrdv4mMTLTpxMreq+dSkbm3GI0MiVJkiSFVKV3V/ZzMk8yJuXsStr5W6ZH5txtypzJHMm88nY66nIH29I1m/hDMDIlSZIkhVSld1fFyLwYZS+l+Mice9HjqCpGZvpdc9Nbd+nIHD222Q2MTEmSJEkhVendnXlkjt/nJuszHuNzK2NNlblcNv0eQhdTEzRjXhb7QcmRbGRKkiRJCqlytz71J2TGza2g2MgcnQPMm0nJ91k9wxv/jPRTd54YlmXf2fXxnclvIf0S0/IP6XSPITIyJUmSJDVauVvXODInY2zpScLsKVXRazLjnWJkZlzra2RKkiRJCqmmH0H8ctm97AtlC3W2y2Ur/O1c3El+xeWykiRJksKp+UcgSZIkSepMzT8CSZIkSVJnav4RSJIkSZI6U/OPQJIkSZLUmZp/BJIkSZKkztT8I5AkSZIkdabmH4EkSZIkqTM1/wgkSZIkSZ2p+UcgSZIkSepMzT8CSZIkSVJnav4RSJIkSZI6U/OPQJIkSZLUmZp/BJIkSZKkztT8I5AkSZIkdabmH4EkSZIkqTM1/wgkSZIkSZ2p+UcgSZIkSepMzT8CSZIkSVJnav4RSJIkSZI6U/OPQJIkSZLUmZp/BJIkSZKkztT8I5AkSZIkdabmH4EkSZIkqTM1/wgkSZIkSZ2p+UcgSZIkSepMzT8CSZIkSVJnevDgWKq85o9sSZIkSY304MHx0cmJVGEPHhyfAAAAQTIyVX1GJgAABMvIVPUZmQAAECwjU9VnZAIAQLCMTFWfkQkAAMEyMlV9RiYAAATLyFT1GZkAABAsI1PVZ2QCAECwjExVn5EJAADBMjJVfUYmAAAEy8hU9RmZAAAQLCNT1WdkAgBAsIxMVZ+RCQAAwVo6Moe7WxtFbQ3uNT1v1IaMTAAACNbSkXlwc6O/X2haFL+lOp6RCQAAwTIyVX1GJgAABMvI1HwH/dRlz8PdrY2bByXuxMgEAIBgGZlKtt+Pv7x2uLtV+tW2RiYAAAQrqJG55BHeG2xdHQxnQytm/jzewc2NjY3+QeJ757+SeMOk/u4g8w2UWvonNtmZp1mYR0YmAAAELKiRmZ6CyV+Nj8zpsIz/c/bb7W5tXc1+o93h7tbW7nD+R8+uR23ln9jk4Y1n9mRqulwWAAAoIqyRmfcg0+ct80bmfn9y+vGgv7GxtTscb86bB9OvxO95fmSuyJnM6eWy+4NTnsw0MgEAIFhFRmZxLZtMw0HyBGOG6Swc7m5tLD+TWeg+p7dfwTOZczvT5bIAAEA5nR6Zqe4NtnIn03BwdaPYyFwyuuIXl67qyDyau1y29PcamQAAEKylIzN5KenCjZn7cseWtGBkzi5n7R8cLRuZu3l/JrFXMM7/ua3YG/+Mf+OD0yzMIyMTAAACtnxkJodHfDu1flUmyh+ZBzc3+ruDrauD4ejtf/Lf+Gf8lek5z1nZnzC5qmcyz5KRCQDQHoc761EURes7h1lfTn395OTkZK+X9yvnYa8XRb29Rn40lSg7MhNXz7Z9Iy0/Dds/OJoswNi7y87G4VHOyMw/kxm/5dz9jMvYol3LyAQAaN5ebzQT4yPzcGd9st9GQzJ7Sc6NzPEN803vYrJbC8gZsLF7aGricnalz2SudHlnMvf7/f34R5gMB1dj+3k8MmNfzD6TmdF0ZGZ98MnGxkbyEzg7kpEJANC0yTTs7c1G5uxrizdmcyNz7k7MzFVlZM796mg6Jj5OczYyJ9+78ARp/OzudFvGvuhMJgAA5+BwZz2KejuHe5ORubPX602mW/ZynFykmjUysy5gLX9Z7aKLdBN3a2auLCNz7levDoZHw8HV+Y+7HI/M2DjMPZM5O9s5mZfpl60amQAA1G3R6cfeXt4vT097xk857pQYmYXPZS6Zj9PH57WZq6jLI7Po++JOduD0LX8SA3L6xrPxDzgpdiYzeQ8Zujg4jUwAgIYtHpmJk5OxrZg/MgsNxqpG5uyOnMxcQV0emWoqIxMAoBXimy+21iYLdPyl9NvPnvI1mSUeUeGR6WTmCjIyVX1GJgBA47K34frOYWq/pV90ufA1mdkfibJ0imbLWZBzZ0SdzFw1Rqaqz8gEAGhW/K1zFlzCmvqIk7lvb25kJu7MylwxRqaqz8gEAGjY5AMxZ3Nt9jmZvV4Ura+vTzZexrvHxkZegddkRslXd2bc1dxOnHyCZ57p5by93vqiLUpLGZmqPiMTAKAdJmcxEyNtb2/yNrLJNwFKnZAsMzJj50ynIzL1PrFL3zh27gaJl4+yEoxMVZ+RCQDQrEXv8joed/M3SU3A6bBLXR2bfbnsRHwiJh7F/Een9Hp7WSsz+bay3mZ2BRmZqj4jEwCgWQVG5tyeTJ7pjL0mc3Kms5d3QjO1/vZ6UW9n4WeZ5F79Onvcs5vEX19a4R8R9TEyVX1GJgBA8xKvhkxfOZt/kjD9wZkLrppNfvdsvMaud13f2cvYj9mPOHUTM3PFGJmqPiMTAKBpcy+unL7yMn3Va+bui43M6Us2c98fKPMupzebm7pzbyiU2IsLPxkzb37SSkamqs/IBABoh8T7+CQ/hiTvfORsPc424pKRObvHjHuKf3HuISVPs+afrUy8TS5tZmSq+oxMAIAWKPDRlXPvzpP+JMzJJa6xuZkWH4rJE5h5w/BwZz1zYS46Ubl8iNISRqaqz8gEAGjW/MaLfTxJ/LWRWR8zEh9809dh9vZSd7lgQGY8gkXXuMbfcHbZpbBOZ64GI1PVZ2QCADRtr5c/xfZ6yV853FlPfmTIePLt9ca/UOA1mac2dxK0olvSHCNT1WdkAgBAsIxMVZ+RCQAAwTIyVX1GJgAABCt68OBYqrymD2wAAKAZRqZqqekDGwAAaIbLZVV9RiYAAATLyFT1GZkAABAsI1PVZ2QCAECwjExVn5EJAADBMjJVfUYmAAAEy8hU9RmZAAAQLCNT1WdkAgBAsIxMVZ+RCQAAwTIyVX1GJgAABMvIVPUZmQAAECwjU9VnZAIAQLCMTFWfkQkAAMEyMlV9RiYAAATrVCPzoL+x0d9vesmotRmZAAAQrPIj86C/sbGx0T9ofMmotRmZAAAQrNIjc7+/4TSmFmdkAgBAsAqNzHuDrY1MW4N7Te8ZVdxBP/XXOtzd2rh5UOJOjEyANnsJAOpUYGSOro/NWZm7w6ZHkapuvx//zwfD3a3S/zXByARos5deeqnphwBAly0dmcPdnLOYGxvlzm6dbwc34w9vOLha9BLfxWftDm6mXo96b7A1/5XEn1h/N/s8cKsvOZ7szNMszCMjE6DdjEwAarV0ZB7cXNXTmMPdrY2rg+FR/uW+2WMyd5Fm7e2travJr4wm2XB3a/znM1uhsytRD262dmROHuR+f/rbcbksQKcYmRTkUKEghwoJHR6Zk+Kj8aA/3nuTL+a+3DSpf3P6jkcH/Y2Nrd3heHPePJh+Jf5z50dm1h22dGTGLpfdH5zyZKaRCdBmng5SkEOFghwqJJzpctnWf5DJaCFP59/sX/f745Oc0+4NthLDL3kd7HCQPGmZZXLGb2XPZJ6cHLlcFqDTPB2kIIcKBTlUSFj+xj9LzvW19Q1m7w224mcXRxd/3jw4yXxd5bjpec6TrDdZHQ6uLvnNxi8rXe2ReTR3uWzp7zUyAdrM00EKcqhQkEOFhALvLrvwDF7ifGBL2u9PZ2Tsotb4bUZvmTvdfstcHQxHI3M377ax1y7uz91mJd/4Z/zHODjlf0EwMgHazNNBCnKoUJBDhYQOf07mwgt94488fgJz6e5KXWc7voeMz5Zc7TOZZ8nIBGgzTwcpyKFCQQ4VEgqNzKOT2dm5m4Ppic2Wz6T890RNbMKSI7PY3p6NzNyf292MTIA2C/7p4OHOejSzvnOY/FL8V4IW/KFyZoc762EcSMEdKmX/ZoM5EqaKjswVbG5k3htszc5Azo+91AddLir7TGb2Tx+NzNwTqi3+lNGzZmQCtFlwTweTio5MQzP4Q+WM9nrBHESBHSpl/2YDOhKmQhmZ+/3YqJsfmYV34/jG+eKndqfbMvZFZzIBaIHAng5mmozK3t78v0+fBM5W5+QmIXKonE1A0yKwQ8XIXK7DI3NcxgtKkx9MUuK639xFOrufybxMnx01MgFogcCeDmZaOjKnTwvDel6YEMahEv/Ln/ytZ/zXhdgvpX55uiH2Rvc1/YdgTop39VCZ/1tf3znMuOph8jc7f9vk/7ckbp+cncn/S8r60auloyMz/oax6V03/tXxB2aWumy18JnMcYs+AKa7g9PIBGizrj4dLMPILCSMQ2X6l7+eXAPTJ/yJgbn0143MTkj9tS8ameljZPT1043MzB+9Wjo6MtVoRiZAm3Xy6WBJS0fm9Dne6j23q1AYh8psBUz+sqdfScyH9KhMToL5wyWgiyS7eKgs+OvL+KW93uzfJsdD8oBJ/0esnJHZhSPHyFT1GZkAbdbFp4Nl5Y3M7HMRwQrjUMk4jT23ErLOaU8PmIWboAtToaAuHioLrldd9jc7/vWzjsyV/r8hI1PVZ2QCtFkXnw6WVWRkruYzu0qFcagUHZlZr8I0Mse6eaikL4Oev9Iha3jGnXpkLvjRK8PIVPUZmQBt1s2ng+UUeE0moRwqGX/5cycqs0Zm4nuMzA4fKnP/BWr++ujUBbKJiXiGkZn7o1eGkanqMzIB2qzDTwcLMzILCeNQSX9cTeIll/mvyUy8r2jOyFy5eXAKXT9Uct6XJ/l/IKN/T1xMnXH71CGUPsbyfvTKMDJVfUYmQJt1/engUvPXxq7vHBqZOcI4VPJekJs+T5W04ERV+p67fWx18VDJe7/Yk4y/2ewjZHqAZBwJie+YvLdx1msyV/PwMTJVfUYmQJt18elgKUZmUWEcKrG//AUfk7nwvVhyr4uNHWvdPra6eKgs+mTU9N/s7Na9vdTlsplHwtzbGi9645+VO4l5cnJiZKqOjEyANuvi00FqEcah4r8wVCCMQ4USjExVn5EJ0GaeDlJQGIeKkVmBMA4VSjAyVX1GJkCbeTpIQWEcKkZmBcI4VCjByFT1GZkAbebpIAWFcagYmRUI41ChBCNT1WdkArSZp4MU5FChIIcKCUamqs/IBGgzTwcpyKFCQQ4VEoxMVZ+RCdBm06eDL8EyDhUKcqgQZ2Sq+oxMgDZ7yTkHAOpkZKr6jEyANjMyAahV9ODBsVR5TR/YAOQyMinIoUJBDhUSosbPeqmTAdBang5SkEOFghwqJBiZqiUAWsvTQQpyqFCQQ4UEI1O1BEBreTpIQQ4VCnKokGBkqpYAaC1PBynIoUJBDhUSjEzVEgCt5ekgBTlUKMihQoKRqVoCoLXO8nTwz/8x/PAf/+l//M8PtFp9+I//9Of/GDpUtDSHigq2+FAxMlVLALTWWZ4ODv/zi88f+b/51fP5o6PDPz8o+10OlQA5VCho8aFiZKqWAGitMz4drPCRcJ7Ofzmc+ntplkOFgoxMnXcAtJang2GyHCjIoUJBRqbOOwBay9PBMFkOFORQoSAjU+cdAK3l6WCYLAcKcqhQkJGp8w6A1vJ0MEyWAwU5VCho0ch85Q/HUuWd5/ENQCmeDobJcqAghwoFGZk6787z+AagFE8Hw2Q5UJBDhYKMTJ1353l8A1CKp4NhshwoyKFCQUZmfh98vPnY3evjf73fm/1zbi8+/+7m8w8zfun23Us/uJVR6j5ffP7dS1fuN/97r7PzPL4BKMXTwTBZDhTkUKEgI3Nhk515/UrGROzdPn7x+Xez12P+jIyVPVxzl2pXOs/jG4BSPB0Mk+VAQQ4VCjIyl3X77uaVu5uTs4vXr9zq3T5+5YOPNy98/OLsZvd7j737zAfTf334zIX4v47GavEJmvr2bnWexzcApXg6GCbLgYIcKhRkZC7q+pVbly58fP2D0XnF+73Hbl268O7mY7d6t9M3vt9LDNHl9593Ce793mO3OnzR7Hke3wCU4ulgmCwHCnKoUJCRmdv1K7fGl62OXlEZG4Tjq2ev3H8l50raWVfuL7nBD25dmjspevzK7buXrnzc4ZOZ53l8A1CKp4NhshwoyKFCQZWMzH/furLx3/7+3xtfLzV0v7fsMtfC5y0n3b678CWXD5+5cKt3ezQ1u3ky8zyPbwBK8XQwTJYDBTlUKKiqM5ld3Zn3e4nTjH84fuUPD5+5EB+Zy085vvj8u7Ndevvu7NRleknOfrWzr8w8z+MbgFI8HQyT5UBBDhUKqvBy2U7uzNnIjL3pa+mROb6rx+72rtzqXbl76Qe3Np9/OHrB54vJ28TOi3b0ZOZ5Ht8AlOLpYJgsBwpyqFBQla/JfOHvexvX/lfjG6bSZiMzdllsfGTODc5FffDx5mO3Np9/+Mrtu5vPf9zLeveg2atA87/Sgc7z+AagFE8Hw2Q5UJBDhYIqG5ldXJiTRh9AcuFu70Lqc0cKnWx8+MyFW/HLZTeffzj+4uxM5sNnLmS+o+zDZy50bWee5/ENQCmeDobJcqAghwoFVTMyu7kwR28qm/FpluN3A+rdLnSt7PQU6PRtZmfnMEfz9cr9hWcsu7Yzz/P4BqCUMz4d/PzRUYUPhvPx+aOj818ODpVV5FChoMWHSugfYaKaOs9DHIBSzvJ08Ouv/+s/P/9Sq9jXX/+XQ0VFcqioYAsOFSNTtXTq/6MBoG5neTpIUBwqFORQIcHIVC01fWADkMvTQQpyqFCQQ4UEI1O11PSBDUAuTwcpyKFCQQ4VEoxM1VLTBzYAuTwdpCCHCgU5VEgwMlVLTR/YAOSaPh18CZZxqFCQQ4U4I1O11MzzJgAKeMk5BwDqFH3zzf+RKq/pAxuAXEYmALWKjk5OpMoDAADCZGSqlgAAaNwbb7xx/fr17Q65fv36G2+80fSfK0sYmaolAACa9Xevvvr6668/fPjw+w55+PDh66+//nevvtr0ny6LGJmqJQAAmnXt2rUvvvji+Pj4/3XI8fHxF198ce3atab/dFnEyFQtAQDQrO3t7e+//77pVVi977//fnt7u+k/XRYxMlVLAAA0a3t7+7vvvvu/nfPdd98ZmS1nZKqWAABo1mhkHnWOkdl+RqZqCQCAZhmZNMXIVC0BANCs0cj8crE//O0TT/ztH8b/FCWMfyX1Hbm/8NP3v/zyy/d/Gv30/dk9j/91zvs/Hd3D+z9N/sjcHztjZLafkalaAgCgWdvb28fHx39d7F9+/sQTP/+X+X8a+8VP5v89/j3RT36Re2e/+En0k5/H7zZ928ldZ/yI1MNIOT4+NjJbzshULQEA0KzRyHyUb7AZO3v48uDl9JnMl3//6NGj36d/IX3y8eXfZ9ws/dXNQfyHbm5uJr9l9mNzGZntZ2SqlgAAaNbSkflotCDHm272T9MNmlx7g81oc5D+zsT9RdHsVr9/+YnxP8/dfHLXsR8x+fXsuzUyV4uRqVoCAKBZo5H5l8V+9/ITT7z88ma0Ofhd1pnI381uOdiMos3B3DcPNtM3mZ6e3Bz85S+Dl594YnyL3738xOy7B5ujr07+d/JAfveXAozM9jMyVUsAADRre3v722+//XShd56Koih66p3Ftxrd7qkXXvjRj174dfxrP3rhhacm3/7O5J/eeSp66p1Pf/3Cj6Ioeuqdd5760Qu//vTTX8997+THjv43Lf5jUr799lsjs+WMTNUSAADNGo3Mw1wf3ViLfnzjxtrajY8OP7qxlvNqy7UbH310Yy368Z3Dw8PDOz8e/8P4u+/E/+FwfIu1Gx/N/5Qf3zn8aPRjDqc/aO3GR4ezrx7O//NiRmb7GZmqJQAAmjUamX9a7MMba2s3Ppz70p3L0eU7ebef/OKdy1Hi++5cTu7T0b18eGNt7fLl+Z9y5/LajQ+nv5T9fbmMzPYzMlVLAAA0q+TI/PDG2mjdza3F9OAb/3Jymo7uYXr7+FK9czl5P+OReedydPlGYuVOH4aRucKMTNUSAADN2t7e/uabbz5Z7Fc/W1v72a9G/xCN/unty9HltxfcfnwZ7c9+lfylt9/+VcYvv305ffu3L6/97FejHzR9ALMfkP/TP/nkk08++eabb4zMljMyVUsAADRrNDLvL/bL59bWnvvl/ftvPRk9+dZbT0bR2nPPPRk9+Vb6lm89GUVRNP2lXz63FkXR2nO/TNxbNL6LKHryrdG/T+4/duO3nlx77q3n1qY3mZf102OMzPYzMk/TJ2/uXnrsg9+enBydnPz22VuXnv1T+iuNP8hmAwCgWdvb219//fUf8715KYqi6IfX9968FP3w+l78izOX3ty7/sPRP2TcxfjXxncyf6M3L0Wzux3f9tKb4/u/dP36D394fe+Pf9wb/2/sVpk/aebrr782Mluu+Mgc7m5tXB0MG18vLem3z9569s2/Hu1/cOlv/vmTnK+EHAAAzVo6MleUkdl+pc5k2pnx/vTfH7t16bHdf/h0wVfCDQCAZo1G5v/uHCOz/cpeLmtnTjMyFwUAQLO2t7e/+uqrf+ucr776yshsudKvybw32NroHzS+YRpvdHHsJ2/uJi6XjX8l5AAAaNa1a9eGw+GjR4/+tUMePXo0HA6vXbvW9J8ui5QbmRbmqN8+e2uyJP/6D39z69Kzf0p/pfEH2WwAADTr1Vdffe211z777LOvOuSzzz577bXXXn311ab/dFmkxMi0MFU8AAAa1+/3r127tt0h165d6/f7Tf+5soSPMFEtAQAAYTIyVUsAAECYjEzVEgAAECYjU7UEAACEychULQEAAGEyMlVLAABAmIxM1RIAABAmI1O1BAAAhMnIVC0BAABhMjJVSwAAQJiMTNUSAAAQJiNTtQQAAITJyFQtAQAAYTIyVUsAAECYjEzVEgAAEKbowYNjqfKaPrABAIBmRA8eHDd+1ksdy8gEAIBgGZmqPiMTAACCZWSq+oxMAAAIlpGp6jMyAQAgWEamqs/IBACAYBmZqj4jEwAAgmVkqvqMTAAACJaRqeozMgEAIFhGpqrPyAQAgGAZmao+IxMAAIJlZKr6jEwAAAiWkanqMzIBACBYRqaqz8gEAIBgGZmqPiMTAACCVWZkDgdXN0a2dofNLxm1NiMTAACCVXhkzhamnaklGZkAABCsoiPz3mBrY97VwbDxMaPqO+hvbA3uzX1xuLu1cfOgxJ0YmQAAECwjU8n2+xuxnTnc3dpIzc4lGZkAABCs7l4um3zAaf39jG88uLnot3Zwc2Njo38Q/+K9wdb8V4a7c3u8v5va5/k/vS1NduZpFuaRkQkAAAHr7hv/DAdX4+socRXocHA1b+Yd9HMWYGI9jv4ktpJTdvxThrtb4z+l2QqdPYaDm60dmZMHud+f/nZcLgsAABRVYGTGTwlOz261f20WH5lLz3n2D47Go6u/P7qrja3d4fjP4ebB9CvxBzA/MlfqTOb0ctn9wSlPZhqZAAAQrOUjc3xGa+EAa2PFL5ddcFYzfh5y+R1ONufJyQqfyZz+pbtcFgAAKG/pyMy6RjSu/AI5p8qdySw2Mpf8ZuOXla72yDyau1y29PcamQAAEKylI/PgZsHzgW2rnpG5m3deN/baxflzvyv5xj+j9g5gZ00AAAKWSURBVAen/C8IRiYAAASr0yOz4CMv9prM8e7qZ312S/ZnS672mcyzZGQCAECwCrzxz8GiF2WWetPRc+2gP/d60cVnMvMvCk18QknuK1TzR2buY+huRiYAAASrzEeYrFT3BltzpxzzR2bqgy4XlX0mM6PpyMx9UWt79/mZMzIBACBYnR2Z+/35FZc7Moe7WwV34/hul19/O7nb5BedyQQAALquoyMz/V4+eSPzoF/qZaW5ZzLnV2vilZzZj6G7GZkAABCsbo7M5LWyJ9OBF7t4tX9wlD7huazCZzJnjyT35t0dnEYmAAAEq5sjU81mZAIAQLCMTFWfkQkAAMEyMlV9RiYAAATLyFT1GZkAABAsI1PVZ2QCAECwjExVn5EJAADBMjJVfUYmAAAEy8hU9RmZAAAQLCNT1WdkAgBAsIxMVZ+RCQAAwTIyVX1GJgAABMvIVPUZmQAAECwjU9VnZAIAQLCMTFWfkQkAAMEyMlV9RiYAAATLyFT1GZkAABCs6MGDY6nymj6wAQCAZkSNn/VSJwMAAMJkZKqWAACAMBmZqiUAACBMRqZqCQAACJORqVoCAADCZGSqlgAAgDAZmaolAAAgTEamagkAAAiTkalaAgAAwmRkqpYAAIAwGZmqJQAAIExGpmoJAAAIk5GpWgIAAMJkZKqWAACAMBmZqiUAACBMRqZqCQAACJORqVoCAADCZGSqlgAAgDAZmaolAAAgTEamagkAAAiTkalaAgAAwmRkqpYAAIAwGZmqJQAAIExGpmoJAAAIk5GpWgIAAMJkZKqWAACAMBmZqiUAACBMRqZqCQAACJORqVoCAADCZGSqlgAAgDAZmaolAAAgTEamagkAAAiTkalaAgAAwmRkqpYAAIAw/X9HgZY+QH23JQAAAABJRU5ErkJggg==" alt="" />

需要注意:

1:一个母板中,需要3个地方是由子板来进行自行定义的:

a:子板的CSS

b:子板的js

c:子板的内容。

继承的母板的语法:

 {% extends 'layout/menu.html' %}

母板中的可被定义部门的书写方式:

     {% block js  %}
{% endblock %}

子板可以根据母板定义的block块的名字进行引用:

 {% block js %}
<script src="/static/js/input.js"></script>
{% endblock %}

规范:

我们可以创建一个include目录,下面创建需要的html文件,里面写上要导入的内容。

 <h1>输入组合</h1>
<input type="text"/>
<input type="text"/>
<input type="text"/>
<input type="text"/>
<input type="text"/>

然后在html中导入

 {% extends 'master/master_templates.html' %}

 {% block content %}
<h1>xxxxi</h1>
{% include 'include/simple_input.html' %}
{% endblock %}

五:分页:

分页思想:

1:需要考虑每页需要展示多少条数据。

2:一共多少条数据,需要多少页。

3:每个页面展示多少页脚。

4:如果当前页小于页面展示的页脚,该怎么去展示。

代码:

 #!/usr/bin/env python
#-*- coding:utf- -*-
#evil_liu
from django.utils.safestring import mark_safe class Pager():
'''
功能:该类是实现分页功能。
'''
def __init__(self,current_page):
self.current_page = int(current_page)
#把方法伪造成属性()
@property
def start(self):
return (self.current_page-)*
@property
def end(self):
return self.current_page* def page_str(self,all_item,base_url):
'''
功能:该函数是对分页计算以及字符串的拼接。
:param all_item: 数据库中数据条目总数。
:param base_url: 分页请求url。
:return: 返回分页的字符串变量。
'''
all_page, div = divmod(all_item, ) if div > :
all_page += pager_list = [] if all_page <= :
start =
end = all_page
else:
if self.current_page <= :
start =
end = +
else:
start = self.current_page -
end = self.current_page +
if self.current_page + > all_page:
start = all_page -
end = all_page + #把页面动态起来传入起始和结束
for i in range(start, end): #判断是否为当前页
if i == self.current_page:
temp = '<a style="color:red;font-size:26px;padding: 5px" href="%s?page=%d">%d</a>' % (base_url,i,i)
else:
temp = '<a style="padding: 5px" href="%s?page=%d">%d</a>' % (base_url,i,i) # 把标签拼接然后返回给前端
pager_list.append(temp) #上一页
if self.current_page > :
pre_page = '<a href="%s?page=%d">上一页</a>' % (base_url, self.current_page - )
else:
# javascript:void() 什么都不干
pre_page = '<a href="javascript:void(0);">上一页</a>'
#下一页
if self.current_page >= all_page:
next_page = '<a href="javascript:void(0);">下一页</a>'
else:
next_page = '<a href="%s?page=%d">下一页</a>' % (base_url, self.current_page + ) pager_list.insert(, pre_page)
pager_list.append(next_page) return mark_safe("".join(pager_list))