'''实现增删改查四个功能'''
在terminal中输入
python manage.py startapp studentapp(创建firstapp)
每次新创建的app都要在setting.py中 INSTALLED_APPS注册一下否则templates目录下的下的模板无法正常渲染
1.先建一个mysql数据库(库名:student)
2.在models中创建类
from django.db import models
class Student(models.Model):
id=models.IntegerField(primary_key=True)
name=models.CharField(max_length=20)
age=models.IntegerField()
sex=models.CharField(max_length=100)
grade=models.IntegerField()
hobby=models.TextField()
3.在setting.py文件中配置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'student',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
4. 生成表
在terminal中输入以下命令:
python manage.py makemigrations
(负责收集models.py文件中数据模型的变化,如果这里的文件内容没有发生任何变化,会提示:No changes detected)
python manage.py migrate
将数据模型生成为数据库中的表。
5.创建static文件夹将.css文件复制到文件夹下,在setting中设置
STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]
6将.HTML文件复制到templates中并修改(可通过继承精简代码)
'''base.html'''
{% block title %}{% endblock %}{#留着子模板填充#}
学生管理系统
{% block content %}{% endblock %} {#居中#}
‘’‘first.html’‘’
{% extends 'base.html' %}
{% block title %}{#填充父模板#}
欢迎登陆
{% endblock %}
{% block content %}
{% endblock %}
'''add.html'''
{% extends 'base.html' %}
{% block title %}
添加
{% endblock %}
{% block content %}
{% endblock %}
'''delete.html'''
{% extends 'base.html' %}
{% block title %}
删除
{% endblock %}
{% block content %}
{% endblock %}
'''update.html'''
{% extends 'base.html' %}
{% block title %}
修改
{% endblock %}
{% block content %}
{% endblock %}
'''select.html'''
{% extends 'base.html' %}
{% block title %}
查询
{% endblock %}
{% block content %}
{% if s %}
学号:{{ s.id }}      姓名:{{ s.name }}      年龄:{{ s.age }}      性别:{{ s.sex }}      年级:{{ s.grade }}      爱好:{{ s.hobby }}.
{% endif %}
{% endblock %}
'''success.html'''
{% extends 'base.html' %}
{% block title %}
操作成功
{% endblock %}
{% block content %}
操作成功
{% endblock %}
7.在views中编写功能函数
from django.shortcuts import render
from .models import Student
def first(request):
return render(request,template_name='first.html')
def success(request):
return render(request,template_name='success.html')
def add(request):
if request.method=='GET':
context={
'submit_type':'添加',
'url':'/add/'
}
return render(request, template_name='add.html', context=context)
elif request.method=='POST':
id=request.POST.get('id')
name=request.POST.get('name')
age=request.POST.get('age')
sex=request.POST.get('sex')
grade=request.POST.get('grade')
hobby=request.POST.get('hobby')
s=Student(id=id,name=name,age=age,sex=sex,grade=grade,hobby=hobby)
s.save()
return render(request,template_name='success.html')
def delete(request):
if request.method=='GET':
context={
'submit_type':'删除',
'url':'/delete/'
}
return render(request, template_name='delete.html', context=context)
elif request.method=='POST':
id = request.POST.get('id')
s = Student.objects.get(id=id)
s.delete()
return render(request, template_name='success.html')
def update(request):
if request.method=='GET':
context={
'submit_type':'修改',
'url':'/update/'
}
return render(request, template_name='update.html', context=context)
elif request.method=='POST':
id = request.POST.get('id')
name = request.POST.get('name')
age = request.POST.get('age')
sex = request.POST.get('sex')
grade = request.POST.get('grade')
hobby = request.POST.get('hobby')
s=Student.objects.get(id=id)
s.name=name
s.age=age
s.sex=sex
s.grade=grade
s.hobby=hobby
s.save()
return render(request,template_name='success.html')
def select(request):
if request.method == 'GET':
context = {
'submit_type': '查询',
'url': '/select/'
}
return render(request, template_name='select.html', context=context)
elif request.method == 'POST':
id = request.POST.get('id')
s = Student.objects.get(id=int(id))
return render(request,template_name='select.html',context={'s':s,'submit_type':'查询','url':'/select/'})
8.urls中设置路由
from django.contrib import admin
from django.urls import path
from studentapp.views import add,delete,update,select,first
urlpatterns = [
path('admin/', admin.site.urls),
path('add/', add),
path('delete/', delete),
path('update/', update),
path('select/', select),
path('first/', first),
path('success/', success)
]
8.启动项目
python manage.py runserver
9.登录
http://127.0.0.1:8000/first/
图片.png