赞
踩
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————————进入指定跳转页面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。