文章目录
一、 数据库正向与反向迁移
正向迁移(将django中的类导入到MySQL中变成表)
python3 manage.py makemigrations
python3 manage.py migrate
反向迁移
python3 manage.py inspectdb
二、 Django脚本测试环境搭建
django默认情况下是不允许单独使用某个功能部分(models.py)
django测试环境搭建 :
# 方式1:任意创建一个py文件,eg:test.py 在该文件内书写固定的配置
1.要么自己新建一个py文件
2.要么使用自带的tests文件
在该文件内书写固定的配置,如下:
import os
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day47.settings")
import django
django.setup()
# 测试代码
# 方式2:直接使用pycharm提供的python console
三、 Django终端打印SQL语句
# 1 queryset对象.query
# 2 通过日志,如下,配置到settings.py中
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level':'DEBUG',
},
}
}
配置好之后,再执行任何对数据库进行操作的语句时,会自动将Django执行的sql语句打印到pycharm终端上
补充:
- 除了配置外,还可以通过一点.query即可查看查询语句,具体操作如下:
四、 单表查询关键字
准备书籍表
# models.py
class Books(models.Model):
title = models.CharField(verbose_name='书名',max_length=32)
price = models.CharField(verbose_name='价格',max_length=32)
publish_time = models.DateTimeField(verbose_name='日期',auto_now_add=True)
def __str__(self): # 改变对象的字符串显示,打印对象自动触发
return self.title # 返回值
4.1 增查改删
# 增加
res = models.Books.objects.create(title='人性的弱点',price=687.90)
print(res.title) # 人性的弱点
'''create返回值就是当前被创建的数据对象'''
# 查询
res = models.Books.objects.all()
print(res.query) # query查看当前orm内部对应的原生sql语句
res = models.Books