zoukankan      html  css  js  c++  java
  • django与mysql实现简单的增删查改


    模型定义

    from django.db import models
    
    
    class Grades(models.Model):
        g_name = models.CharField(max_length=20)
        create_date = models.DateTimeField()
        girl_num = models.IntegerField()
        boy_num = models.IntegerField()
        isDelete = models.BooleanField(default=False)
    
        def __str__(self):
            return self.g_name
    
        class Meta:
            db_table = 'grades'
    
    
    class Students(models.Model):
        s_name  = models.CharField(max_length=20)
        s_gender = models.BooleanField(default=True)
        s_age = models.IntegerField()
        conetend = models.CharField(max_length=20)
        isDlete = models.BooleanField(default=False)
        # 关联外键
        s_grade = models.ForeignKey("Grades")
    
        def __str__(self):
            return self.s_name
    
        class Meta:
            db_table = 'students'
    
    

    url

    from django.conf.urls import url
    from user import views
    urlpatterns = [
    
        url(r'^show_info/',views.show_info,name='show_info'),
        url(r'^add_stu/',views.add_stu,name='add_stu'),
        url(r'^del_stu/(d+)/',views.del_stu,name='del_stu'),
        url(r'^mod_stu/(d+)/',views.mod_stu,name='mod_stu'),
        url(r'^sel_stu/',views.sel_stu,name='sel_stu'),
    
    ]
    

    视图函数定义

    from django.shortcuts import render
    from django.http import HttpResponseRedirect
    from django.urls import reverse
    from user.models import Students,Grades
    
    
    def show_info(request):
        if request.method == 'GET':
            stus = Students.objects.all()
            return render(request,'info.html',{'stus':stus})
    
    def add_stu(request):
        if request.method == 'GET':
            grades = Grades.objects.all()
            return render(request,'add.html',{'grades':grades})
        if request.method == 'POST':
            name = request.POST.get('name')
            age = request.POST.get('age')
            gender = request.POST.get('sex')
            content = request.POST.get('msg')
            grade = request.POST.getlist('check')[0]
            sgrade = Grades.objects.get(g_name=grade)
            Students.objects.create(s_name=name,s_age=age,s_gender=gender,contend=content,s_grade=sgrade)
            return HttpResponseRedirect(reverse('user:show_info'))
    
    
    def del_stu(request,id):
        if request.method == 'GET':
            Students.objects.get(pk=id).delete()
            return HttpResponseRedirect(reverse('user:show_info'))
    
    
    def mod_stu(request,id):
        if request.method == 'GET':
            stu = Students.objects.get(pk=id)
            grades = Grades.objects.all()
            return render(request,'mod.html',{'stu':stu,'grades':grades})
        if request.method == 'POST':
            name = request.POST.get('name')
            age = request.POST.get('age')
            gender = request.POST.get('gender')
            grade = request.POST.getlist('check')[0]
            u_grade = Grades.objects.get(g_name=grade)
            Students.objects.filter(pk=id).update(s_name=name,s_age=age,s_gender=gender,s_grade=u_grade)
            return HttpResponseRedirect(reverse('user:show_info'))
    
    def sel_stu(request):
        if request.method == 'GET':
            return render(request,'sel.html')
        if request.method == 'POST':
            name = request.POST.get('name')
            try:
                stu = Students.objects.get(s_name=name)
                return render(request, 'sel.html', {'stu': stu})
            except:
                return render(request,'sel.html',{'error':'该学生不存在'})
    
    
    

    页面html定义

    添加页

    
    {% extends 'base.html' %}
    {% block content %}
        <form action="" method="post">
            {% csrf_token %}
            姓名:<input type="text" name="name">
            年龄:<input type="text" name="age">
            性别:<input type="text" name="sex">
            描述:<input type="text" name="msg">
            {% for grade in grades %}
                <input type="radio" name="check" value="{{grade.g_name}}">{{grade.g_name}}
            {% endfor %}
            <input type="submit" value="提交">
        </form>
    {% endblock %}
    

    修改页

    {% extends 'base.html' %}
    {% block content %}
        <form action="" method="post">
            {% csrf_token %}
           姓名: <input type="text" name="name" value="{{stu.s_name}}">
           年龄: <input type="text" name="age" value="{{stu.s_age}}">
           性别: <input type="text" name="gender" value="{{stu.s_gender}}">
            {% for grade in grades %}
                <input type='radio' name="check" value="{{grade.g_name}}">{{grade.g_name}}
            {% endfor %}
            <input type="submit" value="修改">
        </form>
    
    {% endblock %}
    
    

    查询页

    {% extends 'base.html' %}
    {% block content %}
        <form action="" method="post">
            {% csrf_token %}
            请输入学生姓名:<input type="text" name="name">
            <input type="submit" value="提交">
            <table border="1">
                <br>
            {% if stu %}
                <thead>
                    <th align="center" style="color:red">序号</th>
                    <th align="center" style="color:red">姓名</th>
                    <th align="center" style="color:red">年龄</th>
                    <th align="center" style="color:red">性别</th>
                    <th align="center" style="color:red">简介</th>
                    <th align="center" style="color:red">班级</th>
                </thead>
                <tbody>
                    <tr>
                        <td align="center">{{stu.id}}</td>
                        <td align="center">{{stu.s_name}}</td>
                        <td align="center">{{stu.s_age}}</td>
                        <td align="center">{{stu.s_gender}}</td>
                        <td align="center">{{stu.contend}}</td>
                        <td align="center">{{stu.s_grade.g_name}}</td>
                    </tr>
                </tbody>
            </table>
            {% endif %}
        </form>
    <h1 style="color:red">{{error}}</h1>
    {% endblock %}
    
    

    信息页

    {% extends 'base.html' %}
    {% block content %}
    <table border="1">
        <thead>
            <th align="center" style="color:red">序号</th>
            <th align="center" style="color:red">姓名</th>
            <th align="center" style="color:red">年龄</th>
            <th align="center" style="color:red">性别</th>
            <th align="center" style="color:red">班级</th>
            <th align="center" style="color:red">班级成立时间</th>
            <th align="center" style="color:red">删除学生</th>
            <th align="center" style="color:red">修改学生</th>
        </thead>
        <tbody>
            {% for stu in stus %}
                <tr>
                    <td align="center">{{forloop.counter}}</td>
                    <td align="center">{{stu.s_name}}</td>
                    <td align="center">{{stu.s_age}}</td>
                    <td align="center">{{stu.s_gender}}</td>
                    <td align="center">{{stu.s_grade.g_name}}</td>
                    <td align="center">{{stu.s_grade.create_date}}</td>
                    <td align="center"><a href="/user/del_stu/{{stu.id}}/">删除</a></td>
                    <td align="center"><a href="/user/mod_stu/{{stu.id}}/">修改</a></td>
                </tr>
            {% endfor %}
        </tbody>
    </table>
    <a href="/user/add_stu/{{stu.id}}/">增加学生</a>
    <a href="/user/sel_stu/{{stu.id}}/">查询学生</a>
    
    {% endblock %}
    
    想要不可替代,必须与众不同
  • 相关阅读:
    数据结构基础(21) --DFS与BFS
    数据结构基础(20) --图的存储结构
    数据结构基础(19) --堆与堆排序
    数据结构基础(18) --哈希表的设计与实现
    数据结构基础(17) --二叉查找树的设计与实现
    数据结构基础(16) --树与二叉树
    数据结构基础(15) --基数排序
    数据结构基础(14) --链式队列的设计与实现
    在centOS6.5 上安装使用pipework
    数据结构基础(13) --链式栈的设计与实现
  • 原文地址:https://www.cnblogs.com/xcool/p/9903106.html
Copyright © 2011-2022 走看看