info显示
menu <h2>用户信息管理</h2> <a href="{% url 'users' %}">浏览用户</a> | <a href="{% url 'addusers' %}">添加用户</a> <hr/>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>用户信息管理</title> </head> <body> <center> {% include "mytest/users/menu.html" %} <h3>{{ info }}</h3> </center> </body> </html>
静态文件
1 注意
1 修改setting里面的静态设定(在最后) STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] 2 在每一个页面都使用编码(每个页面前都必须要加) {% load static from staticfiles %}
2 使用方法
创建一个base.html,base是父,其他为子,所有的公共部分都放在父文件里以便调用 {% csrf_token %} 1 占位标签 {%block block_name%} 这里可以定义默认值 如果不定义默认值,则表示空字符串 {%endblock%} 在base文件中任意位置可以占位,然后可以在子文件中写上占位标签就可以自己定义那块部分的内容,注意标签名字不能重复 2 继承标签 {% extends "base.html" %} 在子文件中写入继承标签就可以继承父类里面的公共信息
提交表单注意
from 里面需要写 action="{% url 'myadmin_usersinsert' %}" enctype="multipart/form-data" method="post" 下面需要加 {% csrf_token %}
分页
# stu信息分页实例 url(r'^stu/(?P<pIndex>[0-9]*)/$', views.stu, name='stu'),
#stu学生信息分页实例 def stu(request,pIndex): #return HttpResponse('ok') list = Stu.objects.filter() #实例化分页对象 p = Paginator(list,5) # 处理当前页号信息 if pIndex=="": pIndex = '1' pIndex = int(pIndex) # 获取当前页数据 list2 = p.page(pIndex) plist = p.page_range return render(request,"myweb/stu.html",{'stulist':list2,'pIndex':pIndex,'plist':plist})
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Web的使用操作</title> <!-- 最新版本的 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> </head> <body> <center> <h1>信息分页实例</h1> <a href="{% url 'index' %}">返回首页</a> <br/><br/> <table width="70%" border="1"> <tr> <th>学号</th> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>班级</th> </tr> {% for stu in stulist %} <tr> <td>{{ stu.id }}</td> <td>{{ stu.name }}</td> <td>{{ stu.age }}</td> <td>{{ stu.sex }}</td> <td>{{ stu.classid }}</td> </tr> {% endfor %} </table> <br/> <ul class="pagination"> {%for pindex in plist%} <li><a href={% url 'stu' pindex %}>{{pindex}}</a> </li> {% endfor %} </ul> </center> </body> </html>
城市的多级联动
# 城市级联操作 url(r'^showdistrict$', views.showdistrict, name='showdistrict'), url(r'^district/([0-9]+)$', views.district, name='district'), ]
# 加载城市级联信息操作模板 def showdistrict(request): return render(request,"myweb/district.html") # 加载对应的城市信息,并json格式ajax方式响应 def district(request,upid): dlist = District.objects.filter(upid=upid) list = [] for ob in dlist: list.append({'id':ob.id,'name':ob.name}) return JsonResponse({'data':list})
{% load static from staticfiles %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Web的使用操作</title> <style> select{margin:10px;} </style> <!-- <script type="text/javascript" src="/static/js/jquery-1.8.3.min.js"></script> --> <script type="text/javascript" src="{% static 'js/jquery-1.8.3.min.js' %}"></script> <script type="text/javascript"> //jQuery入口程序 $(function(){ $.ajax({ url: "{% url 'district' 0 %}", type: 'get', data: {}, dataType:'json', success:function(res){ var data = res.data; for(var i=0;i<data.length;i++){ $('<option value="'+data[i].id+'">'+data[i].name+'</option>').appendTo('select:last') //$('select:last').append('<option value="'+data[i].id+'">'+data[i].name+'</option>'); } }, error:function(){ alert("ajax加载失败!"); } }); //获取最后一个下拉框并添加选中事件 $("select").live('change',function(){ //获取选中的id号 var id = $(this).val(); $(this).nextAll().remove(); $.ajax({ url: "/district/"+id, type: 'get', data: {}, dataType:'json', success:function(res){ if(res.data.length<1) return; var data = res.data; var select = $("<select></select>") for(var i=0;i<data.length;i++){ $('<option value="'+data[i].id+'">'+data[i].name+'</option>').appendTo(select) //$('select:last').append('<option value="'+data[i].id+'">'+data[i].name+'</option>'); } $("select:last").after(select); } }); }); }); </script> </head> <body> <h1>Ajax的城市级联信息操作</h1> <br/> <select> <option>-请选择-</option> </select> </body> </html>
错误日志
看下面前请先确定 1 确保每个代码页都保存了 2 重启一下服务实施 3 看页面下面给的错误的地方,看是不是单词写错了 4 你可以看下面的错误了 in.... 缩进错误 sock 数据库启动错误 service mysqld restart 404 连接成功,地址栏写的不对 "Table 'myshop.django_session' doesn't exist") 需要执行数据迁移 $ python manage.py migrate ProgrammingError at /myadmin/orders// (1146, "Table 'myshop.myadmin_orders' doesn't exist") 表找不见,后台需要在模板处改名 class Meta: db_table = "myweb_orders"
NoReverseMatch at /myadmin/ordersedit/1 Reverse for 'myadmin_ordersedit' with no arguments not found. 1 pattern(s) tried: ['myadmin/ordersedit/(?P<uid>[0-9]+)$'] 在html里面少写了一个参数 <form id="edit-profile" class="form-horizontal" action="{% url 'myadmin_ordersupdate' order.id %}" enctype="multipart/form-data" method="post">
判断
两层判断 <td> {% if stu.sex == 1 %} 男 {% else %} 女 {% endif %} </td> 三层判断 {% if stu.state == 1 %} 启用 {% elif stu.state == 2 %} 禁用 {% else %} 后台管理员 {% endif %}
一些不会的方法
计算总价 数量是shop.m 单价是shop.price 总价 <h5 id="xiaoji" class="xj">{% widthratio shop.price 1 shop.m %}</h5> 特殊的提交url方式并进行加减 减 <button class="col-md-2 btn-1 col-xs-2" onclick="window.location='{% url 'gwcchange' %}?sid={{shop.id}}&m={{shop.m|add:-1}}'" >-</button> 加 <button class="col-md-2 btn-2 col-xs-2" onclick="window.location='{% url 'gwcchange' %}?sid={{shop.id}}&m={{shop.m|add:1}}'">+</button>