> pip install mysqlclient
# 创建数据库 > create database Demo DEFAULT CHARSET utf8 COLLATE utf8_general_ci; > > # 展示数据库 > show databases;
在 settings.py 中,配置 Mysql 的连接串
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 不做修改 'NAME': 'demo', # 数据库名 'USER': 'root', # 用户名 'PASSWORD': '12345', # 密码 'HOST': '127.0.0.1', # 主机 'PORT': '3306', # 端口号(默认) } }
扩展:
Django 也支持其它数据库:官方文档:https://docs.djangoproject.com/zh-hans/3.2/ref/databases/
注意:
① 该类可重复执行
② 若类中的字段存在变更,则数据库表中的字段也同步变更
③ 若该类删除,则数据库中的表也同步删除
settings.py 中:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config' # 注册项目 ]
models.py 中:
from django.db import models # 参数 models.Model 固定 class UserInfo(models.Model): name = models.CharField(max_length=32) password = models.CharField(max_length=64) age = models.IntegerField()
终端中依次执行命令:数据库迁移,同步表结构!
> python manage.py makemigrations > python manage.py migrate
可选,创建管理员
python manage.py createsuperuser
查询表:
mysql> use demo; mysql> desc app01_userinfo;
views.py:
from django.shortcuts import render, HttpResponse from app01.models import UserInfo # Create your views here. def orm(request): # 1.添加数据 UserInfo.objects.create(name="张三", password=123, age=18) UserInfo.objects.create(name="李四", password=456, age=20) UserInfo.objects.create(name="王五", password=789, age=22) # 2.删除数据 UserInfo.objects.filter(id=3).delete() # 删除单条数据 # UserInfo.objects.all().delete() # 删除全部数据 # 3.获取数据 data_list = UserInfo.objects.all() # return QuerySet 类型数据 for obj in data_list: print(obj.id, obj.name, obj.password, obj.age) row_obj = UserInfo.objects.filter(id=1).first() print(row_obj.id, row_obj.name, row_obj.password, row_obj.age) # 4.更新数据 UserInfo.objects.filter(id=1).update(age=30) return HttpResponse("成功")
urls.py:
from django.urls import path from app01 import views urlpatterns = [ # path('admin/', admin.site.urls), # ORM 测试 path('orm/', views.orm) ]
报错截图:
【第一步:登录 mysql,查看 ssl 开启情况】
C:\Users\Administrator>mysql -u root -p Enter password: ***** mysql> show variables like '%ssl%';
【第二步:修改 my.ini】
【第三步:重启 mysql 服务】
【第四步:重新执行命令】
【第五步:启动 DJango 项目】