1.在settings .py文件下修改下面两个配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app' # app为开发文档的文档名字
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库类型
'NAME': 'django', # 数据库名
'USER': 'root', # 账号
'PASSWORD': 'rock1204', # 密码
'HOST': '127.0.0.1', # IP
'POST': 3306 # 数据库端口号
}
}
2.建立模型(models.py)
# Create your models here.
from django.db import models
class Article(models.Model):
# 唯一、不能为空且长度不能超过10字符的title字段
title = models.CharField(max_length=10, unique=True, null=False)
desc = models.TextField(null=False)
is_delete = models.BooleanField(default=1)
# 自定义表名
class Meta:
db_table = 'article'
class Student(models.Model):
# 最大长度为10个字符,不能为空,唯一
s_name = models.CharField(max_length=10, unique=True, null=False, verbose_name='id')
s_age = models.IntegerField(default=20, verbose_name='年龄')
# auto_now_add:创建数据是,默认赋予创建时间
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
# auto_now: 修改数据时,默认赋予修改的时间
operate_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
# 自定义表名
class Meta:
db_table = 'student'
3. 数据增删改操作(views.py)
3.1 对数据进行增加操作
3.1.1 方法一:
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
from app.models import Student
def add_stu(request):
# 新增数据
# 与flask对比:flask-sqlalchemy:db.session.add(对象)
# 第一种:save()
stu = Student()
stu.s_name = '小明'
stu.save()
return HttpResponse('插入数据成功')
3.1.2 方法二:
def add_stu(request):
# 第二种:create()
# flask:Student.query
# django ORM:Student.object
Student.objects.create(s_name='小笛', s_age=88)
return HttpResponse('插入数据成功')
3.2 删除数据:
def del_stu(request):
# 删除数据
# stu = Student.objects.filter(s_name='小明').first()
# stu.delete()
# 批量删
Student.objects.filter(s_name='小笛').delete()
return HttpResponse('删除数据成功')
3.3 更新数据
def update_stu(request):
print(request)
# 更新数据
# save(), auto_now定义的自动会自动更新
# stu = Student.objects.filter(s_name='小笛').first()
# stu.s_age = 88
# stu.save()
# update(), auto_now定义的字段不会自动更新
Student.objects.filter(s_name='小笛').update(s_age=70)
return HttpResponse('更新数据成功')
注意:用save()进行数据更新,auto_now定义的字段会自动更新;而用update()进行数据更新,auto_now定义的字段不会自动更新。除此之外,update()在更新图片路径时(存图片时,存的是图片的路径),也会有问题
4. 定义路由(urls.py)
注意:路由地址的最前面没有 ‘/’,只有后面有 ‘/’,如果前后都有 ‘/’,在访问地址时,则需要多加一条斜杠如:127.0.0.1//admin/。
from django.contrib import admin
from django.urls import path
from app.views import hello, add_stu, sel_stu, del_stu, update_stu
urlpatterns = [
path('admin/', admin.site.urls),
path('add_stu/', add_stu),
path('sel_stu/', sel_stu),
path('del_stu/', del_stu),
path('update_stu/', update_stu),
]
5. 将模型委托给后台管理,可以在后台可视化操作
from django.contrib import admin
# Register your models here.
from app.models import Article, Student
# 将模型Article, Student交给后台进行管理
admin.site.register(Article)
admin.site.register(Student)
来源:CSDN
作者:程序-缘
链接:https://blog.csdn.net/qq_41579555/article/details/89646000