一.新建django项目准备工作
CMD新建项目命令:django-admin startproject [项目名称]
pycharm的project目录里新建app命令:python manage.py startapp [app名称]
setting文件下新建app路径
INSTALLED_APPS = [
‘app01‘,]
注释掉csrf中间件
MIDDLEWARE = [
# ‘django.middleware.csrf.CsrfViewMiddleware‘,
]
模板文件部署
在newproject目录下新增文件夹templates
更改setting下template的dirs路径
TEMPLATES = [ { ‘DIRS‘: [os.path.join(BASE_DIR,‘templates‘)],
数据库部署
注释默认sqllte数据库,新增mysql数据库借口
DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, ‘NAME‘: ‘new_project‘, #你的数据库名称 ‘USER‘: ‘root‘, #你的数据库用户名 ‘PASSWORD‘: ‘111111‘, #你的数据库密码 ‘HOST‘: ‘‘, #你的数据库主机,留空默认为localhost ‘PORT‘: ‘3306‘, #你的数据库端口 } }
静态文件部署
在newproject路径下新增static文件夹
在setting配置下新增STATICFILES_DIRS路径
STATICFILES_DIRS=( os.path.join(BASE_DIR,‘app01‘,‘static‘), )
准备工作完成....
Django练习小项目:学员管理系统设计开发
项目需求:
1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个班级至少包含一个或多个讲师4.一个学员要有状态转化的过程 ,比如未报名前,报名后,毕业老学员5.客户要有咨询纪录, 后续的定期跟踪纪录也要保存6.每个学员的所有上课出勤情况\学习成绩都要保存7.学校可以有分校区,默认每个校区的员工只能查看和管理自己校区的学员8.客户咨询要区分来源
django步骤开始
在models文件下新建数据库
创建班级表,教师表,学生表三张表
班级表与教师表为多对多关系(建立多对多关系)
班级表与学生表为一对多关系(建立外键)
from django.db import models # Create your models here.
class Classes(models.Model): """ 新建班级表,例如男生表 """ title = models.CharField(max_length=32)新建title值 m=models.ManyToManyField("Teachers")班级表与教师表为多对多关系
class Teachers(models.Model): """ 新建老师表,女 """ name= models.CharField(max_length=32)
# 一种方式:自己创建第三张表,在数据库中自己插入值# class C2T(models.Model):# cid=models.Foreignkey(Classes)# tid=models.Foreignkey(Teachers)
django创建第三张表,捆绑students表与classes表 class Student(models.Model): username=models.CharField(max_length=32) age=models.IntegerField() gender=models.BooleanField()还有nullBooleanField选项(可以为空的布尔值) cs=models.ForeignKey(Classes,on_delete=True)学生表与班级表为一对多的关系,班级表为多的那个表
注意:django2.1需要加上on_delete选项,True默认
建完表之后,mysql新建数据库,create datebase [数据库名称]
在pychram下新建cmd命令
python manage.py makemigrations新建表结构,
再新建python manage.py migrate,django自动创建表与表关系
url文件下新建django url路由的路径
from django.contrib import adminfrom django.urls import path from app01.views import classes urlpatterns = [ path(‘admin/‘, admin.site.urls), path(‘get_classes/‘,classes.get_class), 班级名单与添加结果 path(‘add_classes/‘,classes.add_classes), 新建内容 path(‘change_classes/‘, classes.change_classes), 更改数据 ]
为了避免views文件下函数太多,删除startproject的views 文件
新建views文件夹,在views文件下新建student,classes,teacher三个文件
classes文件下先写执行的函数
from django.shortcuts import render,redirectfrom app01 import models
def get_class(request): cls_list=models.Classes.objects.all()得到classes表里面的所有内容 return render(request,‘get_classes.html‘,{‘cls_list‘:cls_list})返回get_classes.html页面
def add_classes(request): if request.method == "GET": return render(request,‘add_classes.html‘) elif request.method == "POST": title = request.POST.get(‘title‘) models.Classes.objects.create(title=title) return redirect("/get_classes/")
def change_classes(request): return render(‘change_classes.html‘)
templates文件下新建html文件
get_classes.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin:0; padding:0 } </style> </head><body> <div> <a href="/add_classes/">添加</a> </div> <div> <table border="1"> <thead> <tr> <th>ID</th> <th>名称</th> <th>操作</th> </tr> </thead> <tbody> {% for row in cls_list %} <tr> <td> {{ row.id }} </td> <td> {{ row.title }} </td> <td> <a href="/del_classes?nid={{ row.id }}">删除</a> |<a href="/change_classes?nid={{ row.id }}">修改</a> </td> </tr> {% endfor %} </tbody> </table> </div> </body></html>
add_classes.html页面,用来新增数据的表
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin:0; padding:0 } </style> </head><body> <form action="/add_classes/" method="POST"> {%csrf_token%}添加中间件设置 <input type="text" name="title"> <input type="submit" value="提交"> </form> </body></html>
原文地址:https://www.cnblogs.com/ago-0912/p/9956096.html
时间: 2024-08-05 12:37:34