一.新建django项目准备工作

CMD新建项目命令:django-admin startproject [项目名称]

pycharm的project目录里新建app命令:python manage.py startapp [app名称]

setting文件下新建app路径

  1. 1 INSTALLED_APPS = [ 'app01',]
  1. 注释掉csrf中间件

  1. 1 MIDDLEWARE = [# 'django.middleware.csrf.CsrfViewMiddleware',]
  1. 模板文件部署
  1. newproject目录下新增文件夹templates
  1. 更改settingtemplatedirs路径
  1. 1 TEMPLATES = [ { 'DIRS': [os.path.join(BASE_DIR,'templates')],
  1. setting配置文件添加logging加上日志记录部分,可以在pycharm看到命令

  1. 1 LOGGING = {
  2. 2 'version': 1,
  3. 3 'disable_existing_loggers': False,
  4. 4 'handlers': {
  5. 5 'console':{
  6. 6 'level':'DEBUG',
  7. 7 'class':'logging.StreamHandler',
  8. 8 },
  9. 9 },
  10. 10 'loggers': {
  11. 11 'django.db.backends': {
  12. 12 'handlers': ['console'],
  13. 13 'propagate': True,
  14. 14 'level':'DEBUG',
  15. 15 },
  16. 16 }
  17. 17 }
  1. 数据库部署
  1. 注释默认sqllte数据库,新增mysql数据库借口

  1. 1 DATABASES = {
  2. 2
  3. 3 'default': {
  4. 4
  5. 5 'ENGINE': 'django.db.backends.mysql',
  6. 6
  7. 7 'NAME': 'new_project', #你的数据库名称
  8. 8
  9. 9 'USER': 'root', #你的数据库用户名
  10. 10
  11. 11 'PASSWORD': '111111', #你的数据库密码
  12. 12
  13. 13 'HOST': '', #你的数据库主机,留空默认为localhost
  14. 14
  15. 15 'PORT': '3306', #你的数据库端口
  16. 16
  17. 17 }
  18. 18
  19. 19 }
  20. 20
  1. windows系统还得解决数据插入中文乱码的问题:https://blog.csdn.net/qq_36533690/article/details/82184720
  1. 静态文件部署
  1. newproject路径下新增static文件夹
  1. setting配置下新增STATICFILES_DIRS路径

  1. 1 STATICFILES_DIRS=( os.path.join(BASE_DIR,'app01','static'), )
  1. 准备工作完成....

  1. 生命周期的流程:
  1. 1.发送请求
  1. 2.将发送过来的请求到url路由系统里面匹配
  1. 3.匹配完成后到views执行函数(FBV模式,或者是CBV模式)

  1. django步骤开始
  1. models操作
  1. models文件下新建数据库
  1. 创建班级表,教师表,学生表三张表
  1. 班级表与教师表为多对多关系(建立多对多关系)
  1. 班级表与学生表为一对多关系(建立外键)

  1. 1 from django.db import models
  2. 2
  3. 3 # Create your models here.
  4. 4
  5. 5 class Classes(models.Model):
  6. 6
  7. 7 """
  8. 8 班级表,男
  9. 9 """
  10. 10 title = models.CharField(max_length=32)
  11. 11 m=models.ManyToManyField("Teachers")
  12. 12
  13. 13 class Teachers(models.Model):
  14. 14 """
  15. 15 老师表,女
  16. 16 """
  17. 17 name= models.CharField(max_length=32)
  18. 18 # 自己创建第三张表
  19. 19 # class C2T(models.Model):
  20. 20 # cid=models.Foreignkey(Classes)
  21. 21 # tid=models.Foreignkey(Teachers)
  22. 22
  23. 23
  24. 24
  25. 25 class Student(models.Model):
  26. 26 username=models.CharField(max_length=32)
  27. 27 age=models.IntegerField()
  28. 28 gender=models.BooleanField()
  29. 29 cs=models.ForeignKey(Classes,on_delete=True)
  30. 30
  31. 31
  32. 32
  1. # 一种方式:自己创建第三张表,在数据库中自己插入值
    # class C2T(models.Model):
    # cid=models.Foreignkey(Classes)
    # tid=models.Foreignkey(Teachers)
  1. django创建第三张表,捆绑Teachers表与Classes
  1. 1 class Student(models.Model):
  2. 2
  3. 3 username=models.CharField(max_length=32)
  4. 4 age=models.IntegerField()
  5. 5 gender=models.BooleanField() 还有nullBooleanField选项(可以为空的布尔值)
  6. 6 cs=models.ForeignKey(Classes,on_delete=True) 注意:django2.1需要加上on_delete选项,True默认 学生表与班级表为一对多的关系,班级表为多的那个表
  1.  
  1. 建完表之后,mysql新建数据库,create datebase [数据库名称]
  1. pychram下新建cmd命令
  1. python manage.py makemigrations
  2. 新建表结构,

  1. 再新建
  2. python manage.py migrate
  3. ,django自动创建表与表关系

  1. 启动django项目

  1. 1 python manage.py runserver [端口号]
  1. 路由系统操作
  1. url文件下新建django url路由的路径

  1. 1 """new_project URL Configuration
  2. 2
  3. 3 The `urlpatterns` list routes URLs to views. For more information please see:
  4. 4 https://docs.djangoproject.com/en/2.1/topics/http/urls/
  5. 5 Examples:
  6. 6 Function views
  7. 7 1. Add an import: from my_app import views
  8. 8 2. Add a URL to urlpatterns: path('', views.home, name='home')
  9. 9 Class-based views
  10. 10 1. Add an import: from other_app.views import Home
  11. 11 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
  12. 12 Including another URLconf
  13. 13 1. Import the include() function: from django.urls import include, path
  14. 14 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
  15. 15 """
  16. 16 from django.contrib import admin
  17. 17 from django.urls import path
  18. 18
  19. 19 from app01.views import classes
  20. 20 from app01.views import students
  21. 21
  22. 22 urlpatterns = [
  23. 23 path('admin/', admin.site.urls),
  24. 24 path('get_classes/',classes.get_class),
  25. 25 path('add_classes/',classes.add_classes),
  26. 26 path('del_classes/',classes.del_classes),
  27. 27 path('change_classes/', classes.change_classes),
  28. 28
  29. 29 path('get_students/', students.get_students),
  30. 30 path('add_students/', students.add_students),
  31. 31 path('del_students/', students.del_students),
  32. 32 path('change_students/', students.change_students),
  33. 33
  34. 34 ]
  35. 35
  36. 36
  37. 37
  1.  
  1. views操作 
  1. 为了避免views文件下函数太多,删除startprojectviews 文件
  1. 新建views文件夹,在views文件下新建student,classes,teacher三个文件

classes文件执行的函数

  1. 新增班级,删除班级,修改班级
  1. from django.shortcuts import render,redirect
  2. from app01 import models
  3.  
  4. def get_class(request):
  5. cls_list=models.Classes.objects.all()
  6. # 得到classes表里面的所有内容,这一步是为了get_classes.html:{% for row in cls_list %}
  7. # for item in cls_list:
  8. # print(item.id,item.title,item.m.all())
  9.  
  10. return render(request,'get_classes.html',{'cls_list':cls_list})
  11. # 返回get_classes.html页面,传入cls_list是为了{% for row in cls_list %}遍历所有班级
  12.  
  13. def add_classes(request):
  14. # 如果是get请求,返回到add_classes.html页面
  15. if request.method == "GET":
  16. return render(request,'add_classes.html')
  17.  
  18. elif request.method == "POST":
  19. title = request.POST.get('title')
  20. models.Classes.objects.create(title=title)
  21. return redirect("/get_classes/")
  22.  
  23. # 数据库操作: filter找到nid.delete()
  24. # 使用request.GET.get()得到nid,这一步是为了get_classes.html:?nid={{ row.id }}
  25.  
  26. # html:<!--为了删除到某一行,需要精确匹配到id,因为id不会重复,?nid:(nid等于id),-->
  27. # <!--{{ row.id(遍历row里面的.id) }}-->
  28.  
  29. def del_classes(request):
  30. nid=request.GET.get('nid')
  31. models.Classes.objects.filter(id=nid).delete()
  32. return redirect('/get_classes/')
  33.  
  34. def change_classes(request):
  35. if request.method == "GET":
  36. nid=request.GET.get('nid')
  37. obj=models.Classes.objects.filter(id=nid).first()
  38. # .first()是因为取到的是一个对象集合[{'id':1,'title':'xx班级'},]
  39. return render(request,'change_classes.html',{'obj':obj})
  40.  
  41. elif request.method == "POST":
  42. nid=request.GET.get('nid')
  43. title = request.POST.get('xxoo')
  44. models.Classes.objects.filter(id=nid).update(title=title)
  45. return redirect('/get_classes/')
  46.  
  47. def set_teachers(request):
  48. if request.method=="GET":
  49. nid = request.GET.get('nid')
  50. cls_obj=models.Classes.objects.filter(id=nid).first()
  51. cls_teacher_list = cls_obj.m.all().values_list('id','name')
  52. # 这是找到teachers表的,元祖形式的id跟name(1,'ago'),(2,'ago2')
  53. id_list= list(zip(*cls_teacher_list))[0] if list(zip(*cls_teacher_list)) else []
  54. # 当前任课老师的id_list
  55. # print(cls_teacher_list)
  56. all_teachers_list=models.Teachers.objects.all()
  57. # print(all_teachers_list)
  58.  
  59. # for t in all_teachers_list:
  60. # if t.id in cls_teacher_list:
  61. return render(request,
  62. 'set_teachers.html',
  63. {'id_list':id_list,
  64. 'all_teachers_list':all_teachers_list,
  65. 'nid':nid
  66. }
  67. )
  68.  
  69. elif request.method=="POST":
  70. nid=request.GET.get('nid')
  71. ids=request.POST.getlist('teacher_ids')
  72. obj=models.Classes.objects.filter(id=nid).first()
  73. obj.m.set(ids)
  74. return redirect('/get_classes/')

students文件执行的函数新增学生,删除学生,修改学生

  1. 1 from django.shortcuts import render,redirect
  2. 2 from app01 import models
  3. 3
  4. 4
  5. 5 def get_students(request):
  6. 6 students_list=models.Student.objects.all()
  7. 7 # for row in students_list:
  8. 8 # print(row.username,row.age,row.gender,row.cs.title,row.cs.id)
  9. 9
  10. 10 return render(request,"get_students.html",{'students_list':students_list})
  11. 11
  12. 12 def add_students(request):
  13. 13
  14. 14
  15. 15 if request.method == "GET":
  16. 16 cs_list = models.Classes.objects.all()
  17. 17 # cs_list的结果是{['id':1,'title':'xx班'],}
  18. 18 for row in cs_list:
  19. 19 print(row.id,row.title)
  20. 20 return render(request,'add_students.html',{'cs_list':cs_list})
  21. 21 # 传入'cs_list'是为了
  22. 22 # <select name="cs">
  23. 23 # {% for row in cs_list %}
  24. 24 # <option value='{{ row.id }}'>{{ row.title }}</option>
  25. 25 # {% endfor %}
  26. 26 # </select>
  27. 27 # <select name="cs">
  28. 28 # # {% for row in cs_list %}是为了遍历cs_list里面的id跟title
  29. 29 # value='{{ row.id }}'是为了把row.title对应的row.id找出来
  30. 30 elif request.method == "POST":
  31. 31 u=request.POST.get('username')
  32. 32 a=request.POST.get('age')
  33. 33 g=request.POST.get('gender')
  34. 34 c=request.POST.get('cs')
  35. 35 # print(u,a,g,c)
  36. 36 models.Student.objects.create(
  37. 37 username=u,
  38. 38 age=a,
  39. 39 gender=g,
  40. 40 cs_id=c
  41. 41 )
  42. 42 return redirect("/get_students/")
  43. 43 # row.id=c,添加到数据表中cs_id
  44. 44
  45. 45
  46. 46 def del_students(request):
  47. 47 nid=request.GET.get('nid')
  48. 48 # 目的是删除id=1的那条数据,点提交之后会跳转到href="/del_students?nid={{ row.id }}"
  49. 49 # 所以把id=nid
  50. 50 models.Student.objects.filter(id=nid).delete()
  51. 51 return redirect('/get_students/')
  52. 52
  53. 53 def change_students(request):
  54. 54 if request.method == 'GET':
  55. 55 nid = request.GET.get('nid')
  56. 56 obj = models.Student.objects.filter(id=nid).first()
  57. 57 # 这是为了取到POST请求中的网址内容,数据编辑里面的唯一id,找到对应的那一列
  58. 58 # 找到Students表中id=nid的学生,结果取第一个,就是id:[{'id':1},{'id':2}]
  59. 59 # obj中有当前学生的班级ID=2 obj.cs_id
  60. 60 cls_list = models.Classes.objects.values('id', 'title')
  61. 61
  62. 62 # 找到Classes表中所有的id与title,结果是一个字典
  63. 63 # 所有班级ID 班级名称
  64. 64 # 1 1班
  65. 65 # 2 2班 selected
  66. 66 # cls_list是什么类型?QuerySet相当于列表
  67. 67 # 【{'id':'cc',title:'xx'},{'id':'',title:'xx'},】
  68. 68 # for row in cls_list:
  69. 69 # print(row['id'])
  70. 70 return render(request, 'change_students.html', {'obj': obj, 'cls_list': cls_list})
  71. 71 # 传入obj是为了
  72. 72 # <p><input type="text" name="xxoo" value="{{ obj.username }}"></p>
  73. 73 # <p><input type="text" name="xxoo" value="{{ obj.age }}"></p>
  74. 74 # 把input框的values值先显示出来,obj.username原始的内容,
  75. 75 elif request.method == "POST":
  76. 76 nid = request.GET.get('nid')
  77. 77 u = request.POST.get('username')
  78. 78 a = request.POST.get('age')
  79. 79 g = request.POST.get('gender')
  80. 80 class_id = request.POST.get('class_id')
  81. 81 models.Student.objects.filter(id=nid).update(username=u, age=a, gender=g, cs_id=class_id)
  82. 82 return redirect('/students.html')
  83. 83
  84. 84

  1. templates文件下新建html文件
  1. get_classes.html
  1. 显示班级页面
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. *{
  8. margin:0;
  9. padding:0
  10. }
  11.  
  12. </style>
  13.  
  14. </head>
  15. <body>
  16.  
  17. <div>
  18. <a href="/add_classes/">添加</a>
  19. </div>
  20. <div>
  21. <table border="1">
  22. <thead>
  23. <tr>
  24. <th>ID</th>
  25. <th>名称</th>
  26. <th>任课老师</th>
  27. <th>操作</th>
  28. </tr>
  29. </thead>
  30. <tbody>
  31. {% for row in cls_list %}
  32. <tr>
  33. <td>
  34. {{ row.id }}
  35. </td>
  36.  
  37. <td>
  38. {{ row.title }}
  39. </td>
  40. <td>
  41. {% for item in row.m.all %}
  42. <span>{{ item.name }}</span>
  43. {% endfor %}
  44.  
  45. </td>
  46.  
  47. <td>
  48.  
  49. <a href="/del_classes?nid={{ row.id }}">删除</a>
  50. |<a href="/change_classes?nid={{ row.id }}">修改</a>
  51. |<a href="/set_teachers?nid={{ row.id }}">添加老师</a>
  52. </td>
  53.  
  54. </tr>
  55. {% endfor %}
  56. </tbody>
  57. </table>
  58. </div>
  59.  
  60. </body>
  61. </html>
  1.  
  1. add_classes.html页面,
  1. 新增班级页面

  1. 1 <!DOCTYPE html>
  2. 2 <html lang="en">
  3. 3 <head>
  4. 4 <meta charset="UTF-8">
  5. 5 <title>Title</title>
  6. 6 <style>
  7. 7 *{
  8. 8 margin:0;
  9. 9 padding:0
  10. 10 }
  11. 11
  12. 12 </style>
  13. 13
  14. 14 </head>
  15. 15 <body>
  16. 16 <form action="/add_classes/" method="POST">
  17. 17 {%csrf_token%}
  18. 18 <input type="text" name="title">
  19. 19 <input type="submit" value="提交">
  20. 20
  21. 21 </form>
  22. 22
  23. 23
  24. 24
  25. 25 </body>
  26. 26 </html>
  1. change_classes.html页面,因为修改数据需要新增一个页面
  1. 用来修改数据,删除数据不用新增页面

  1. 1 <!DOCTYPE html>
  2. 2 <html lang="en">
  3. 3 <head>
  4. 4 <meta charset="UTF-8">
  5. 5 <title>Title</title>
  6. 6 <style>
  7. 7 *{
  8. 8 margin:0;
  9. 9 padding:0
  10. 10 }
  11. 11
  12. 12 </style>
  13. 13
  14. 14 </head>
  15. 15 <body>
  16. 16
  17. 17 <form action="/change_classes/?nid={{ obj.id }}" method="POST">
  18. 18 {% csrf_token %}
  19. 19 <!--<input type="text" value="{{ obj.id }}" style="display:None">-->
  20. 20 <input type="text" name="xxoo" value="{{ obj.title }}">
  21. 21 <input type="submit" name="提交">
  22. 22 </form>
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27 </body>
  28. 28 </html>
  1. get_students.html
  1. 显示学生页面

  1. 1 <!DOCTYPE html>
  2. 2 <html lang="en">
  3. 3 <head>
  4. 4 <meta charset="UTF-8">
  5. 5 <title>Title</title>
  6. 6 <style>
  7. 7 *{
  8. 8 margin:0;
  9. 9 padding:0
  10. 10 }
  11. 11
  12. 12 </style>
  13. 13
  14. 14 </head>
  15. 15 <body>
  16. 16
  17. 17 <div>
  18. 18 <a href="/add_students/">添加</a>
  19. 19 </div>
  20. 20 <div>
  21. 21 <table border="1">
  22. 22 <thead>
  23. 23 <tr>
  24. 24 <th>ID</th>
  25. 25 <th>姓名</th>
  26. 26 <th>年龄</th>
  27. 27 <th>性别</th>
  28. 28 <th>班级</th>
  29. 29 <th>编辑</th>
  30. 30 </tr>
  31. 31 </thead>
  32. 32 <tbody>
  33. 33 {% for row in students_list %}
  34. 34 <tr>
  35. 35 <td>
  36. 36 {{ row.id }}
  37. 37 </td>
  38. 38 <td>
  39. 39 {{ row.username }}
  40. 40 </td>
  41. 41
  42. 42 <td>
  43. 43 {{ row.age }}
  44. 44 </td>
  45. 45 <td>
  46. 46 {{ row.gender }}
  47. 47 </td>
  48. 48 <td>
  49. 49 {{ row.cs.title }}
  50. 50 </td>
  51. 51 <td>
  52. 52 <a href="/del_students?nid={{ row.id }}">删除</a>
  53. 53 |<a href="/change_students?nid={{ row.id }}">修改</a>
  54. 54 </td>
  55. 55
  56. 56 </tr>
  57. 57 {% endfor %}
  58. 58 </tbody>
  59. 59 </table>
  60. 60 </div>
  61. 61
  62. 62
  63. 63
  64. 64 </body>
  65. 65 </html>
  1. add_students.html
  1. 添加学生页面
  1. 1
  2. 2 1 <!DOCTYPE html>
  3. 3 2 <html lang="en">
  4. 4 3 <head>
  5. 5 4 <meta charset="UTF-8">
  6. 6 5 <title>Title</title>
  7. 7 6 <style>
  8. 8 7 *{
  9. 9 8 margin:0;
  10. 10 9 padding:0
  11. 11 10 }
  12. 12 11
  13. 13 12 </style>
  14. 14 13
  15. 15 14 </head>
  16. 16 15 <body>
  17. 17 16
  18. 18 17 <div>
  19. 19 18 <a href="/add_students/">添加</a>
  20. 20 19 </div>
  21. 21 20 <div>
  22. 22 21 <table border="1">
  23. 23 22 <thead>
  24. 24 23 <tr>
  25. 25 24 <th>ID</th>
  26. 26 25 <th>姓名</th>
  27. 27 26 <th>年龄</th>
  28. 28 27 <th>性别</th>
  29. 29 28 <th>班级</th>
  30. 30 29 <th>编辑</th>
  31. 31 30 </tr>
  32. 32 31 </thead>
  33. 33 32 <tbody>
  34. 34 33 {% for row in students_list %}
  35. 35 34 <tr>
  36. 36 35 <td>
  37. 37 36 {{ row.id }}
  38. 38 37 </td>
  39. 39 38
  40. 40 39 <td>
  41. 41 40 {{ row.title }}
  42. 42 41 </td>
  43. 43 42 <td>
  44. 44 43 <a href="/del_students?nid={{ row.id }}">删除</a>
  45. 45 44 |<a href="/change_students?nid={{ row.id }}">修改</a>
  46. 46 45 </td>
  47. 47 46
  48. 48 47 </tr>
  49. 49 48 {% endfor %}
  50. 50 49 </tbody>
  51. 51 50 </table>
  52. 52 51 </div>
  53. 53 52
  54. 54 53
  55. 55 54
  56. 56 55 </body>
  57. 57 56 </html>
  1. change_students.html
  1. 修改学生页面
  1. 1 <!DOCTYPE html>
  2. 2 <html lang="en">
  3. 3 <head>
  4. 4 <meta charset="UTF-8">
  5. 5 <title>Title</title>
  6. 6 <style>
  7. 7 *{
  8. 8 margin:0;
  9. 9 padding:0
  10. 10 }
  11. 11
  12. 12 </style>
  13. 13
  14. 14 </head>
  15. 15 <body>
  16. 16
  17. 17 <form action="/change_students/?nid={{ obj.id }}" method="POST">
  18. 18 <!--obj = models.Student.objects.filter(id=nid).first()
  19. 19 # 这是为了取到POST请求中的网址内容,数据编辑里面的唯一id,找到对应的那一列
  20. 20 # 找到Students表中id=nid的学生,结果取第一个,就是id:[{'id':1},{'username':xxoo},{'age':xx},{'gender':True},{'cs_id':x}]
  21. 21 # obj中有当前学生的班级ID=2 obj.cs_id-->
  22. 22 {% csrf_token %}
  23. 23 <!--<input type="text" value="{{ obj.id }}" style="display:None">隐藏是因为修改学生页面不用显示学生id-->
  24. 24 <p><input type="text" name="xxoo" value="{{ obj.username }}"></p>
  25. 25 <p><input type="text" name="xxoo" value="{{ obj.age }}"></p>
  26. 26 <p>
  27. 27 {% if obj.gender %}
  28. 28 <!--如果gender是已经选择男的,就把女的留空-->
  29. 29 男:<input type="radio" name="gender" checked="checked" value="1" />
  30. 30 女:<input type="radio" name="gender" value="0" />
  31. 31 {% else %}
  32. 32 <!--如果gender已经选择女的,就把男的留空-->
  33. 33 男:<input type="radio" name="gender" value="1" />
  34. 34 女:<input type="radio" name="gender" value="0" checked="checked" />
  35. 35 {% endif %}
  36. 36
  37. 37 </p>
  38. 38 <p>
  39. 39 <select name="class_id">
  40. 40 {% for row in cls_list %}
  41. 41 <!--cls_list = models.Classes.objects.values('id', 'title')-->
  42. 42 <!--# 找到Classes表中所有的idtitle,结果是一个字典-->
  43. 43 {% if row.id == obj.cs_id %}
  44. 44 <!--如果班级表的id(row.id) 等于 学生表的cs(外键=班级表_id)_id两个相等-->
  45. 45 <option value="{{ row.id }}" selected="selected" >{{ row.title }}</option>
  46. 46 <!--那么就'selected' 已选择的选项出来 ,else也显示其他没选择的选项-->
  47. 47 {% else %}
  48. 48 <option value="{{ row.id }}">{{ row.title }}</option>
  49. 49 {% endif %}
  50. 50 {% endfor %}
  51. 51 </select>
  52. 52 </p>
  53. 53
  54. 54 <input type="submit" name="提交">
  55. 55 </form>
  56. 56
  57. 57
  58. 58 </body>
  59. 59 </html>

django_ORM学生管理系统的更多相关文章

  1. 【IOS开发笔记02】学生管理系统

    端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...

  2. C程序范例(2)——学生管理系统”链表“实现

    1.对于学生管理系统,能够实现的方法有许多,但是今天我们用链表的方法来实现.虽然初学者很可能看不懂,但是不要紧,这是要在整体的系统的学习完C语言之后,我才编写出的程序.所以大家不必要担心.在这里与大家 ...

  3. jsp学习之基于mvc学生管理系统的编写

    mvc开发模式:分别是 model层 view层 Control层 在学生管理系统中,model层有学生实体类,数据访问的dao层,view层主要是用于显示信息的界面,Control层主要是servl ...

  4. java版本的学生管理系统

    import java.awt.BorderLayout; import java.awt.Color; import java.awt.Frame; import java.awt.event.Ac ...

  5. 学生管理系统-火车订票系统 c语言课程设计

    概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...

  6. Java学生管理系统项目案例

    这是一个不错的Java学生管理系统项目案例,希望能够帮到大家的学习吧. 分代码如下 package com.student.util; import java.sql.Connection; impo ...

  7. Java+Mysql+学生管理系统

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具 ...

  8. JDBC学生管理系统--处理分页显示

    分页的思想: 假设一共有104条数据,每页显示10条数据: select * from student limit 0,10; 页数是index,第index页,对应的sql语句是: select * ...

  9. JDBC-简单的学生管理系统-增删改查

    结构:三层架构--mvc 三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑. 比如将数据库操作代码封装到一层中,提供一些方法根据参数直 ...

随机推荐

  1. MVC的验证(模型注解和非侵入式脚本的结合使用)

    @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客户端,后台服务器的验证,MVC统统都做了包含,即使用户 ...

  2. AutoHotkey调用VBA实现批量精确筛选数据透视表某字段内容。

    如上图,想在数据透视表中只显示红色区域的内容,手动勾选就比较繁琐. 实现思路: 先复制红色的内容. 鼠标停留在数据透视表[型号]列的任意数据上(通过该单元格可以获取数据透视表和字段) 由于数据透视表的 ...

  3. nginx限制IP恶意调用短信接口处理方法

    真实案例: 查看nginx日志,发现别有用心的人恶意调用API接口刷短信: /Jun/::: +] "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) ...

  4. java virtualVM远程配置方法

    在/etc/hosts中设置主机名和ip的对应关系   ip为用java virtualVM链接服务器的ip 如:      10.175.0.191 host-ai #rmiregistry不知道干 ...

  5. January 25 2017 Week 4 Wednesday

    In every triumph, there's a lot of try. 每个胜利背后都有许多尝试. There's a lot of try behind every success, and ...

  6. azkaban部署

    azkaban安装 安装包下载地址:http://azkaban.github.io/downloads.html 1.上传安装包到指定机器上 scp azkaban-executor-server- ...

  7. Oracle Update语句

    Oracle没有update from语法,可以通过四种写法实现同样的功能: 一.标准update语法(常用.速度可能最慢) 当更新的表示单个或者被更新的字段不需要关联表带过来,此法是最好的选择. u ...

  8. MATLAB入门学习(六)

    今天学三维作图 (*^__^*)…… 三维曲线作图 用到的命令:plot3 基本格式:plot3(x,y,z,s) 这里要画曲线,你需要知道该曲线的参数方程x=x(t),y=y(t),z=z(t) 然 ...

  9. 关闭 XXXXX 前你必须关闭所有会话框

    这个问题应该是和Microsoft管理控制台(Microsoft Management Console,MMC)有关系 我是在使用 任务计划程序 时碰到这个问题的,网上也有其他人在使用 事件查看器 的 ...

  10. if __name__ == "__main__"如何正确理解

    粗略来讲,__name__是当前模块,当模块被直接运行时模块名为__main__.这句话的意思是,当模块被直接执行时,代码将运行,当模块是被导入时,代码不被运行 例如,执行one.py # file ...