django 创建电子文档列表
创建一个document项目,在项目中添加ment.app: 按 ctrl+alt+r输入 startapp ment 建立 ment. app
在templates文件中创建ment目录,在目录中加入add.html文件
先创建一个add.html文件,在网页中间个表格
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{margin: 0; padding: 0; } form{margin-left: 60px;margin-top: 2px;} .head{border: 1px red solid; width: 670px; background: gainsboro;} .tit{width: 670px; text-align: center; margin-top: -5px;margin-bottom: 10px;} .too{width: 200px;border: 1px red solid;text-align: center;} .three{width: 200px;border: 1px red solid;text-align: center;} .five{width: 100px;border: 1px red solid;text-align: center;} tr>td{border: 1px red solid;} </style> </head>
<body> <div class="head"> <form action="queryEdoc" method="post"> {% csrf_token %} 文档分类:<select name="category" id=""> <option value="0">全部</option> <option value="{{ master.id }}">{{ master.dom_Name }}</option> </select> <input type="submit" name="" id="btn" value="查询"> </form><br /> <div class="tit"><h2>电子文档列表</h2></div> <table> <tr> <td>文档编号</td> <td class="too">文档名称</td> <td class="three">文档摘要</td> <td class="four">上传人</td> <td class="five">上传时间</td> <td>操作</td> </tr> <tr> <td>{{ c.id }}</td> <td class="too">{{ c.dom_Name }}</td> <td class="three">{{ c.dom_Abstract }}</td> <td class="four">{{ c.up_userName }}</td> <td class="five">{{ c.up_Time }}</td> <td><a href="delclassify/{{ c.id }}">删除</a></td> </tr> </table> <div> <a href="#">首页</a> <a href="#">上一页</a> <a href="#">下一页</a> <a href="#">末页</a> <span>第1页/第2页</span> </div> </div> </body> </html>
表格创建好后,建立数据库, 在mysql中创建document_db数据库
在document/settings.py文件中修改代码,
1. 在settings.py 下的INSTALLED_APPS加人app(ment)
2. 在settings.py 下的TEMPLATES加人'DIRS':[os.path.join(BASE_DIR.'templates')],
3. 在settings.py 下的DATABASES加入要关联的数据库
创建模板
进入ment/models.py文件,写入Master 和 Classify 两个类 在这里Master 和 Classify两个类会生成两个表
Classify类里的master是设置外键,是为了包生成的两个表关联字一起
在bocument_db数据库中生成以上的两个表,按ctrl+alt+r输入 makemigrations ment 生成一个0001的文件
按ctrl+alt+r输入 makemigrations ment 0001 在bocument_db数据库中生成以上的两个表
在ment_master表中添加数据
在ment_classify表中添加数据
设置表格的一些功能,在ment/views.py文件下创建需要的功能函数,查询,删除
在views。py中导入render,redirect,reverse,models 这几个模块
from django.shortcuts import render,redirect,reverse from .models import * # Create your views here. def queryEdoc(request): masterQuerySet = None classifyQuerySet = None if request.method == 'GET': #查询分类表和条目表所有数据 masterQuerySet = Master.objects.all() classifyQuerySet = Classify.objects.all() else: masterQuerySet = Master.objects.all() cid = int(request.POST.get("category")) classifyQuerySet = Classify.objects.filter(master_id=cid)# 外键id master_id return render(request,"ment/add.html", {'masterSet':masterQuerySet,'classSet':classifyQuerySet}) def delclassify(request,id):#这里的id是获取要删除的id #通过id删除这一行 Classify.objects.filter(id=id).delete() #重新查询所有 cs = Classify.objects.all() ms = Master.objects.all() #返回页面,得到两个集合 return render(request,'ment/add.html',{'masterSet': ms,'classify': cs})
配置路径document/urls.py中设置 导入 include 模块
设置ment/urls.py路径,先创建urls.py文件
在这里还要重新修改add,html文件里的内容,为了能把数据库里的内容更好的显示出来,要进行遍历
遍历下拉列表
<form action="querEdoc" method="post"> {% csrf_token %} 文档分类:<select name="category" id=""> <option value="0">全部</option> {% for master in masterSet %} <option value="{{ master.id }}">{{ master.dom_Name }}</option> {% endfor %} </select> <input type="submit" name="" id="btn" value="查询"> </form><br />
遍历ment_classify表里的数据,添加内容
{% for c in classSet %} <tr> <td>{{ c.id }}</td> <td class="too">{{ c.dom_Name }}</td> <td class="three">{{ c.dom_Abstract }}</td> <td class="four">{{ c.up_userName }}</td> <td class="five">{{ c.up_Time }}</td> <td><a href="delclassify/{{ c.id }}">删除</a></td> </tr> {% endfor %}