Django---学生登陆注册

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;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值