Django的基础学习(下)

简介: Django的基础学习(下)

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>&nbsp;&nbsp;&nbsp;&nbsp;</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>


目录
相关文章
|
7月前
|
存储 缓存 数据库
Django框架学习(四)
Django框架学习(四)
|
7月前
|
前端开发 关系型数据库 MySQL
Django框架学习(三)
Django框架学习(三)
|
7月前
|
JSON 前端开发 数据库
Django框架学习(一)
Django框架学习(一)
|
4月前
|
调度 Apache 数据库
Django 学习教程-第一个 Django 应用
本章主要讲述了如何创建一个Django项目,以一个投票案例程序介绍了Django的请求和响应流程。
51 1
|
4月前
|
Python
Django 学习教程-介绍与安装
本章介绍了Django是什么,以及为什么使用Django和安装Django
40 1
Django 学习教程-介绍与安装
|
9月前
|
Python
【Django学习】(十六)session_token认证过程与区别_响应定制
【Django学习】(十六)session_token认证过程与区别_响应定制
|
5月前
|
前端开发 数据库 网络架构
Python Django框架中文教程:学习简单、灵活、高效的Web应用程序框架
Python Django框架中文教程:学习简单、灵活、高效的Web应用程序框架
|
7月前
|
存储 NoSQL 中间件
Django框架学习(二)
Django框架学习(二)
|
7月前
|
关系型数据库 MySQL 数据库
基于 Python Django 的在线编程学习平台(仿慕课网)
基于 Python Django 的在线编程学习平台(仿慕课网)
|
9月前
|
JSON API 数据安全/隐私保护
【Django学习】(十五)API接口文档平台_项目流程分析_日志器_认证_授权
【Django学习】(十五)API接口文档平台_项目流程分析_日志器_认证_授权