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">PHPoption>
            <option>Pythonoption>
            <option>CSSoption>
            <option>Javaoption>
            <option>Weboption>
        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+='';
        for(var i in arr){
            if(classNames!=arr[i]){
                str+='+arr[i]+''
            }
            className1.innerHTML=str;
        }
        className1.innerHTML=str;

你可能感兴趣的:(Python---Django)