Django之学员管理一

  • 2020 年 1 月 16 日
  • 筆記

Django之学员管理一

建表结构:

#班级表class:  id    title  1    五年一班  2    五年二班  3    五年三班  4    五年四班    #学生表student:  id    name          班级ID(FK外键)  1    George        1  2    Jack            2  3    Tom            2  4    Alex            1    #老师表teacher:  id    name  1    Crystal  2    Lee  3    Iron Man    #老师班级关系表teacher_and_class:  id    老师ID    班级ID  1        1            1  2        1            2  3        2            3  4        2            4  5        3            1  6        3            2

操作单表:班级表和老师表

views.py

from django.shortcuts import render,redirect  import pymysql    def classes(request):      conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='redhat', db='学员管理',charset='utf8')      cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)      cursor.execute("select id,title from class")      class_list = cursor.fetchall()      cursor.close()      conn.close()      return render(request,'classes.html',{'class_list': class_list})    def add_class(request):      if request.method == "GET":          return render(request,'add_class.html')      else:          print(request.POST)          v = request.POST.get('title')          conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='redhat', db='学员管理',charset='utf8')          cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)          cursor.execute("insert into class(title) values(%s)",[v,])          conn.commit()          cursor.close()          conn.close()          return redirect('/classes/')    def del_class(request):      nid = request.GET.get('nid')      conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='redhat', db='学员管理',charset='utf8')      cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)      cursor.execute("delete from class where id=%s",[nid,])      conn.commit()      cursor.close()      conn.close()      return redirect('/classes/')    def edit_class(request):      if request.method == "GET":          nid = request.GET.get('nid')          conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='redhat', db='学员管理',charset='utf8')          cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)          cursor.execute("select id,title from class where id = %s",[nid,])          result = cursor.fetchone()          cursor.close()          conn.close()          print(result)          return render(request,'edit_class.html',{'result':result})      else:          nid = request.GET.get('nid')          title = request.POST.get('title')          conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='redhat', db='学员管理',charset='utf8')          cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)          cursor.execute("update class set title=%s where id = %s",[title,nid,])          conn.commit()          cursor.close()          conn.close()          return redirect('/classes/')

 classes.html

<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">      <title></title>  </head>  <body>      <h1>班级列表</h1>      <div>          <a href="/add_class/">添加</a>      </div>      <table>          <thead>              <tr>                  <th>ID</th>                  <th>班级名称</th>                  <th>操作</th>              </tr>          </thead>          <tbody>              {% for row in class_list %}                  <tr>                      <td>{{ row.id }}</td>                      <td>{{ row.title }}</td>                      <td>                          <a href="/edit_class/?nid={{ row.id }}">编辑</a>                          |                          <a href="/del_class/?nid={{ row.id }}">删除</a>                      </td>                  </tr>              {% endfor %}          </tbody>      </table>  </body>  </html>

add_class.html

<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">      <title></title>  </head>  <body>      <h1>添加班级</h1>      <form method="POST" action="/add_class/">          <p>班级名称:<input type="text" name="title" /></p>          <input type="submit" value="提交" />      </form>  </body>  </html>

edit_class.html

<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">      <title></title>  </head>  <body>      <h1>编辑班级</h1>        <form method="POST" action="/edit_class/?nid={{ result.id }}">          <p>班级名称:<input type="text" name="title" value="{{ result.title }}" /></p>          <input type="submit" value="提交" />      </form>  </body>  </html>

 url.py

from django.conf.urls import url  from django.contrib import admin  from app01 import views    urlpatterns = [      url(r'^classes/', views.classes),      url(r'^add_class/', views.add_class),      url(r'^del_class/', views.del_class),      url(r'^edit_class/', views.edit_class),  ]