第一部分 Django连接Mysql的操作
1.创建数据库和表
先创建一个django_mysql的数据库,再在数据库中插入一个user表
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT '主键ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id)
);
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
2.pycharm创建Django项目
3.修改项目下__init__.py和setttings.py文件
# __init__.py文件中添加
import pymysql
pymysql.install_as_MySQLdb()
# settings.py文件中修改DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'django_mysql', # 数据库名
'USER': 'root', # 账号
'PASSWORD': ' root', # 密码
'HOST': 'localhost', # HOST
'POST': 3306, # 端口
}
}
4.迁移数据库
在pycharm中选择tool菜单栏下 Run manage.py Task...
在终端中输入makemigrations和migrations,如下图则表示数据库迁移成功
这时我们数据库中生成了这几个表
5.app文件夹models.py文件下创建user信息
from django.db import models
"""
该类是用来生成数据库的 必须要继承models.Model
"""
class user(models.Model):
"""
创建如下几个表的字段
"""
# 学号 primary_key=True: 该字段为主键
id = models.CharField('id', primary_key=True, max_length=15)
# 姓名 字符串 最大长度20
name = models.CharField('name', max_length=20)
# 年龄 整数 null=False, 表示该字段不能为空
age = models.IntegerField('age', null=False)
email = models.CharField('email', unique=True, max_length=15)
# 指定表名 不指定默认APP名字——类名(app_demo_Student)
class Meta:
db_table = 'user'
6.终端输入python manage.py runserver,运行Django项目
第二部分,实现数据库的增删查改
"""
增加
"""
def Save_data(request):
data1 = user(id=101, name='袭人', age=18, email='1500@baomidou.com')
data1.save()
data2 = user(id=102, name='晴雯', age=18, email='1000@baomidou.com')
data2.save()
data3 = user(id=103, name='麝月', age=18, email='1000@baomidou.com')
data3.save()
data4 = user(id=104, name='秋纹', age=18, email='1000@baomidou.com')
data4.save()
#return render(request, 'user.html')
return HttpResponse("Hello world! 数据插入成功")
"""
查询
"""
def find(request, Num):
#sql = 'select * from student'
# django 也可以执行原生的sql语句
#result = Student.objects.raw(sql)
# 查询name = tom1的数据
result = user.objects.filter(id=Num)
arr = []
for i in result:
content = {'编号': i.id, '姓名': i.name, '年龄': i.age, '邮箱': i.email}
arr.append(content)
return HttpResponse(arr)
"""
修改
"""
def modify(request, Num):
# 通过学号获取student对象
student = user.objects.get(id=Num)
# 设置student的name为jack
student.name = 'jack'
student.save()
return HttpResponse('修改成功.')
def delete(request, Num):
student = user.objects.get(id=Num)
student.delete()
return HttpResponse('删除成功.')
同时,在urls.py中添加
path(r'insert/', views.Save_data),
re_path(r'find/(?P<Num>\d+)', views.find),
re_path(r'modify/(?P<Num>\d+)', views.modify),
re_path(r'delete/(?P<Num>\d+)', views.delete),
如在网页中输入:http://127.0.0.1:8000/find/1,可以查到
第三部分 后台管理工具
打开manage.py控制界面,输入createsuperuser命令,设置相关用户名、密码、邮箱等创建超级用户
在app/admin.py下加入如下代码
from django.contrib import admin
# Register your models here.
from app.models import user
admin.site.register(user)
管理界面如下:
python版本:python3.9
mysql版本:MySQL8.0.30
使用软件:pycharm、dbeaver