Django框架搭建之学生管理系统

学生管理系统

一、创建工程

1.创建工程(控制台)

django-adminstartproject工程名字

django-adminstartprojectstudentmanager

2.检验工程是否搭建成功(命令在控制台输入,链接在浏览器访问)

pythonmanage.pyrunserver

默认ip和端口: http://127.0.0.1:8000/

3.根据需要调整设置信息(studentmanage/settings.py)

# 界面语言

LANGUAGE_CODE='zh-Hans'

# 时区

TIME_ZONE='Asia/Shanghai'

说明:1.django默认工作在调试Debug模式下, 如果增加、修改、删除文件,服务器会自动重启。2.ctrl+c停止服务器。

二、创建子应用

1.在django中,创建子应用模块目录仍然可以通过命令来操作(控制台),即:

python manage.py startapp 子应用名称

manage.py为上述创建工程时自动生成的管理文件。

例如,在刚才创建的bookmanager工程中,想要创建一个用户book子应用模块,可执行:

cd .\bookmanager\

python manage.py startapp book

执行后,可以看到工程目录中多出了一个名为book的子目录。

2.将子应用在项目工程中注册(studentmanage/settings.py)

INSTALLED_APPS= [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'student.apps.StudentConfig'

]

3.注册编译子应用的模型类

1.注册子应用的模型类(student/admin.py)

fromdjango.contribimportadmin

fromstudent.modelsimportStudentInfo, TeacherInfo

# Register your models here.

admin.site.register(TeacherInfo)

admin.site.register(StudentInfo)

2.编译子应用的模型类(student/models.py)

fromdjango.dbimportmodels

# Create your models here.

# 准备教师、学生列表信息的模型类

classTeacherInfo(models.Model):

tname=models.CharField(max_length=20, null=True, verbose_name="姓名")

tgender=models.CharField(max_length=2, verbose_name="性别")

tbirth=models.CharField(max_length=20,verbose_name="出生年月")

tprof=models.CharField(max_length=20, verbose_name="职称")

classes=models.CharField(max_length=30, verbose_name="所在部门")

is_delete=models.BooleanField(default=False,verbose_name="逻辑删除")

classMeta:

db_table='teacherInfo'

verbose_name='教师信息'

def__str__(self):

# 将模型类以字符串的方式输出

returnself.tname

classStudentInfo(models.Model):

# 创建字段和字段类型

sname=models.CharField(max_length=20, null=True, verbose_name="姓名")

sgender=models.CharField(max_length=2, default="男", verbose_name="性别")

sage=models.IntegerField(verbose_name="年龄")

sbirth=models.CharField(max_length=20,verbose_name="出生年月")

sclass=models.CharField(max_length=20, verbose_name="班级")

teacher=models.ForeignKey(TeacherInfo, on_delete=models.CASCADE, verbose_name="班主任")

is_delete=models.BooleanField(default=False,verbose_name="逻辑删除")

classMeta:

#元数据 理解为最小的数据单元

db_table='studentInfo'# 指的是数据表名

verbose_name='学生信息'# 在admin站点中显示的信息

def__str__(self):

# 将模型类以字符串的方式输出

returnself.sname

说明:加入数据时注意外键约束,定义外键约束时加上on_delete参数,避免两个表内的数据不一致的问题,当主表数据删除时引用了外键表的数据也跟随一起删除

4.发布内容到数据库(studentmanager/settings.py)

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'HOST': "127.0.0.1",

'PORT': 3306,

'USER': "root",

"PASSWORD": "123456",

"NAME": "student"

}

}

说明:首先要记得在数据库中新建一个所需的数据库

1.生成数据库文件(控制台)

Python manage.py makemigrations

2.执行数据库文件(控制台)

python manage.py migrate

三、站点管理

1.创建管理员账号(控制台)

python manage.py createsuperuser

说明:最好等数据库文件执行完成后再生成管理员账号,如果删除了数据库文件,新创建的管理员账号也一同失效

四、指定网站跳转

1.在view文件中进行渲染(student/views.py)

两种方式:

a.静态页面

from django.http import HttpResponse

def index(request):

return HttpResponse("这是index页面")

b.动态指定页面

from django.shortcuts import render

def index(request):

content = '这是index页面'

context = {

"content": content

}

return render(request, 'index.html', context)

2.在子应用中配置index文件路由(student/urls.py)

from django.urls import path

from . import views

urlpatterns = [

path("index/", views.index, name="index")

]

3.在管理工程中修改路由配置(studentmanager/urls.py)

from django.contrib import admin

from django.urls import path, include

urlpatterns = [

path('admin/', admin.site.urls),

path('student/', include("student.urls"))

]

4.将index.html文件所在路径部署到目录中(studentmanage/settings.py)

TEMPLATES = [

{

'BACKEND': 'django.template.backends.django.DjangoTemplates',

'DIRS': [os.path.join(BASE_DIR, "template")],

'APP_DIRS': True,

'OPTIONS': {

'context_processors': [

'django.template.context_processors.debug',

'django.template.context_processors.request',

'django.contrib.auth.context_processors.auth',

'django.contrib.messages.context_processors.messages',

],

},

},

]

说明:这里我是将index.html文件直接放入template中。若index.html文件在其他地方则需要注意另外配置。

四、站点测试

访问站点:

  • 127.0.0.1/admin/————————管理员界面

  • 127.0.0.1/student/index————————进入指定跳转页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简兮_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值