极简生活,极简编程,简到极致,就是完美!
Django的MVT,层层解析,M(Model),来了,以代码+注释展示。全部代码资源,在文末可点击极速下载,免费且不限速!
操作MYSQL
准备工作
0.0 在HelloWorld项目下,生成model模块
django-admin startapp model
0.1 MySQL5.5手动建表或者MySQL5.7自动建表
我的是mysql5.5,不要学我,使用MySQL5.7的话配置model对象之后,使用
python manage.py makemigrations model
python manage.py migrate model
下面是我的手动建表语句,mmp!
CREATE TABLE `model_student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1006 DEFAULT CHARSET=utf8
0.2 在HelloWorld项目中添加配置(settings.py)
DATABASES = {
'default':
{
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'HOST': 'localhost',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'root',
}
}
0.3 加载MySQL的配置(__init __.py)
import pymysql
pymysql.install_as_MySQLdb()
增删改查操作
1. models.py配置模型
from django.db import models
# Create your models here.
class Student(models.Model):
name = models.CharField(max_length=20)
age = models.IntegerField()
2. urls.py中添加url和视图(views)绑定
from django.contrib import admin
from django.urls import path
from . import views, db_views, form_view
urlpatterns = [
path('db_query/', db_views.query),
path('db_add/', db_views.add),
path('db_update/', db_views.update),
path('db_delete/', db_views.delete)
]
3. db_views.py 编写视图函数
from django.http import HttpResponse
from django.shortcuts import render
from model.models import Student
def query(request):
stu_list = Student.objects.all()
print(stu_list)
return render(request, "db.html", {"stu_list": stu_list})
def add(request):
stu1 = Student(name="小红", age=25)
status = stu1.save()
print(status)
stu_list = Student.objects.all()
return render(request, "db.html", {"stu_list": stu_list})
def update(request):
stu = Student.objects.get(id=1005)
stu.name = "zhangsan"
stu.save()
stu_list = Student.objects.all()
return render(request, "db.html", {"stu_list": stu_list})
def delete(request):
stu = Student.objects.get(id=1001)
stu.delete()
stu_list = Student.objects.all()
return render(request, "db.html", {"stu_list": stu_list})
4. 编写template HTML页面(db.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>MySQL_Student</title>
</head>
<body>
<table style="background-color: blue">
<tr>
<td>学号</td>
<td>姓名</td>
<td>年龄</td>
</tr>
{% for stu in stu_list %}
<tr>
<td>{{ stu.id }}</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
5.测试结果
代码资源在:HelloWorld.zip。下期是MVT的View的表单部分,相对内容比较少了。View结束的话,MVT就告一段落了!下期见,Byebye!