1、views.py文件:
from django.shortcuts import render
#引入models类
from app.models import student
# Create your views here.
def gotoIndex(request):
return render(request,'index.html')
def gotoaddDatas(request):
return render(request,'addDatas.html')
def addDatas(request):
studentID=request.GET.get('studentID')
className=request.GET.get('className')
name=request.GET.get('name')
DatasAll=student.objects.all()
#判断表里是否有信息,无信息时,直接保存,有信息时,判断ID是否存在
if len(DatasAll)>0:
# 保存用户ID,下次输入时,判断ID是否存在
#过滤器查找数据表中的内容
filterData = student.objects.filter(studentID = studentID)
#判断用户名是否存在,如果过滤器中的存在内容就说已经存在
if len(filterData)>0:
return render(request,'addDatas.html',{'msg':'已存在','studentID':studentID})
else:
student(studentID=studentID,className=className,name=name).save()
return render(request,'addDatas.html',{'msg':'注册成功','studentID':studentID})
else:
if student(studentID=studentID):
student(studentID=studentID,className=className,name=name).save()
return render(request,'addDatas.html',{'msg':'注册成功','studentID':studentID})
def show(request):
DatasAll=student.objects.all()
print(DatasAll)
return render(request,'show.html',{'msg':'数据展示成功','DatasAll':DatasAll})
#跳转到修改界面
def gotoUpdateData(request):
studentID=request.GET.get('studentID')
studentDatas=student.objects.get(studentID=studentID)
return render(request,'updateData.html',{'studentDatas':studentDatas})
#修改数据
def updateData(request):
studentID=request.GET.get('studentID')
className=request.GET.get('className')
name=request.GET.get('name')
studentDatas=student.objects.get(studentID=studentID)
#修改
student.objects.filter(studentID=studentID).update(name=name,className=className)
return render(request,'updateData.html',{'msg':'修改成功','studentDatas':studentDatas})
#修改页面回到展示页面
def gobackshow(request):
return render(request,'show.html')
#跳转到删除页面
def gotodelete(request):
studentID=request.GET.get('studentID')
className=request.GET.get('className')
name=request.GET.get('name')
student.objects.filter(studentID=studentID).delete()
DatasAll=student.objects.all()
return render(request,'show.html',{'DatasAll':DatasAll})
2、models.py文件:(配置生成数据库)
class student(models.Model):
ID=models.AutoField('ID',primary_key=True)
className=models.CharField('className',max_length=30)
studentID=models.IntegerField('studentID',max_length=30)
name=models.CharField('name',max_length=30)
3、settings.py文件:(配置数据库连接,使用sqlite3数据库)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
4、urls.py 文件:
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from app import views as app_v
urlpatterns = [
url('admin/', admin.site.urls),
url('^$',app_v.gotoIndex),
url('gotoaddeDatas',app_v.gotoaddDatas),
url('addDatas',app_v.addDatas),
url('show',app_v.show),
url('updateData',app_v.updateData),
url('gotoUpdateData',app_v.gotoUpdateData),
url('gobackshow',app_v.gobackshow),
url('gotodelete',app_v.gotodelete),
]
5、login.html 文件:
<a href="gotoaddeDatas">添加学生信息</a>
<a href="show">显示学生信息</a>
6、addDatas.html 文件:
<h1>添加学生信息</h1>
<form action="/addDatas/" method="get">
班级:<select name="className">
<option selected="selected">PHP</option>
<option>Python</option>
<option>CSS</option>
<option>Java</option>
<option>Web</option>
</select> <br>
学号:<input type="text" placeholder="学号" name="studentID"> <br>
姓名:<input type="text" placeholder="姓名" name="name"> <br>
<input type="submit" value="添加">
</form>
<p>{{studentID}}{{msg}}</p>
7、show.html文件
<h1>学生信息如下</h1><form action="show" method="get">
<input type="submit" name="查询">
<table border="1" width="300">
<tr>
<th>班级</th>
<th>学号</th>
<th>姓名</th>
<th>操作</th>
</tr>
{% for i in DatasAll %}
<tr>
<td>{{i.className}}</td>
<td>{{i.studentID}}</td>
<td>{{i.name}}</td>
<td>
<input onclick="javascript:gotoUpdateDatas({{i.studentID}})" type="button" value="修改">
<input onclick="javascript:deleteDatas({{i.studentID}})" type="button" value="删除">
</td>
</tr>
{% endfor %}
</table>
</form>
———————-show.html文件链接js文件的内容————————-
//获取学生ID,并且传递给Python
function gotoUpdateDatas(studentID){
//带参跳转
location="/gotoUpdateData/?studentID="+studentID
}
function deleteDatas(studentID){
if(confirm('是否删除'+studentID+'?')){
location="/gotodelete/?studentID="+studentID
}
alert("删除成功!")
}
8、updateData.html文件
<h1>修改数据</h1>
<form action="/updateData/" method="get">
{% csrf_token %}
<input type="hidden" name="studentID" value="{{studentDatas.studentID}}" >
<!-- 暂时存放的是需要默认展示的值 -->
<input id="classNames" type="hidden" value="{{studentDatas.className}}">
班级:<select id="className1" name="className">
</select>
姓名:<input type="text" name="name" value="{{studentDatas.name}}">
<input type="submit" value="修改">
<input type="button" onclick="javascript:gobackshows()" value="返回上一层">
</form>
{{msg}}
———————updateData.html文件链接js文件的内容————————-
function gobackshows(){
location="/gobackshow/?"
}
var classNames=document.getElementById('classNames'),
className1=document.getElementById('className1');
var arr=['PHP','Python','CSS','Java','Web'];
var str='';
str+='<option value"'+classNames.value+'">'+classNames.value+'</option>';
for(var i in arr){
if(classNames!=arr[i]){
str+='<option value="'+arr[i]+'">'+arr[i]+'</option>'
}
className1.innerHTML=str;
}
className1.innerHTML=str;