数据库操作
- MySQL数据库+pymysql
import pymysql
# 连接mysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", charset='utf8', db='bkys')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 发送指令(不要用字符串格式化做sql的拼接,安全隐患sql注入)
cursor.execute("insert into admin(username,password,mobile) values('bkys','adawd','2131153245')")
con.commit()
# 关闭
cursor.close()
conn.close()
- Django开发操作数据库更简单,内部提供了ORM框架
ORM会帮我们将写下的代码翻译给sql语句,再去数据库执行
安装第三方模块
pip install mysqlclient
- 安装成功
ORM
ORM会帮我们将写下的代码翻译给sql语句,再去数据库执行
- 创建,修改和删除数据库中的表。(无法创建数据库)
- 操作表中的数据(不用写SQL语句)
- 创建数据库
- 启动MySQL服务
- 创建数据库
- django连接数据库
在 settings.py文件中配置
- 注释原来的
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': '3306'
}
}
django操作表
创建表
- 在models.py中
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
- 这就相当于sql中的
create table app01_userinfo(
id bigint auto_increment primary key,
name varchar(32),
password varchar(64),
age int
)
- 执行命令
前提:app已经注册
python manage.py makemigrations
python manage.py migrate
执行完命令出现如下字样即为成功
-
此时查看数据库
-
新增表时,在models.py中新增类即可,然后执行命令
-
当需要在创建成功的表中修改时候
- 删除:注释后执行命令
- 新增:由已存在列中可能由数据,所以需要指定新增对应的数据
- 手动输入一个值
- 类中定义一个默认值
size = models.IntegerField(default=1)
- 允许可以为空
size = models.IntegerField(null=True, blank=True)