首页 / GO / Django-orm操作的基础认识
Django-orm操作的基础认识
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Django-orm操作的基础认识,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2538字,纯文字阅读大概需要4分钟。
内容图文
ORM简介
在使用Django 框架开发web应用的过程中,不可避免的会涉及到数据的管理操作,如增删改查,使用的数据库管理软件有mysql.oracle,Microsoft SQL Server等.
编写sql语句的时候,直接编写原生sql语句会存在几个方面的问题,严重的影响了开发效率,
'''
1. sql语句执行效率低,程序员需要耗费精力去优化sql语句
2.数据库迁移:针对mysql开发的sql语句没法直接应用到oracle数据库上,只要需要迁移数据库,就要考虑平台问题
'''
所以为了解决这两个问题,Django引入了ORM概念(Object Relational Mapping)对象关系映射.
它在pymysql上进行一层封装,对于数据操作,不需要再去写原生sql语句,
我们可以==基于面向对象的思想去编写类,对象,调用相应的方法,ORM会将这个转换,映射成原生SQL然后交给pymysql执行==.
数据操作前戏
- 先去创建数据库.
mysql> create database hello world
- 在settings.py中去配置数据库,
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 使用mysql数据库
'NAME': 'hello_world', # 要连接的数据库
'USER': 'root', # 链接数据库的用于名
'PASSWORD': '', # 链接数据库的用于名
'HOST': '127.0.0.1', # mysql服务监听的ip
'PORT': 3306, # mysql服务监听的端口
'CHARSET': 'utf8',
'ATOMIC_REQUEST': True, #设置为True代表同一个http请求所对应的所有sql都放在一个事务中执行
#(要么所有都成功,要么所有都失败),这是全局性的配置,如果要对某个
#http请求放水(然后自定义事务),可以用non_atomic_requests修饰器
'OPTIONS': {
"init_command": "SET storage_engine=INNODB", #设置创建表的存储引擎为INNODB
}
}
}
- Django orm底层操作数据库python模块默认是mysqldb模块,所以之后将mysqldb模块改为pymysql模块
在__init__.py里面添加两行代码
import pymysql
pymysql.install_as_MySQLdb() # 替换
4.如果你向查看orm语句内部真正的sql语句有两种方式
1.如果是queryset对象 可以直接点query查看
2.配置文件中 直接配置
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level':'DEBUG',
},
}
}
在模型层里面创建表
from django.db import models
class Book(models.Model):
titile = models.CharField(max_length=32)
price = models.DecimalField(max_digists=8,decimal_places=2)
publish_date = models.DateField()
# 在定义一个__str__打印对象的时候便于识别
def __str__(self):
return self.name+'对象'
两条命令
生成数据库迁移记录的文件,而且是放在migrations文件夹里的
python manage.py makemigrations
真正提交到数据库命令
python manage.py migrate
开始操作之前配置一下Django测试环境可以提高开发效率
from djang.test import TestCase
import os
if __name__ =="__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE","app01.settings")
import django
from app01 import models
? ORM查询
? """
? 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测试环境搭建
? import os
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "one_search.settings")
import django
django.setup()
# 你就可以在下面测试django任何的py文件
原文:https://www.cnblogs.com/jhpy/p/12072461.html
内容总结
以上是互联网集市为您收集整理的Django-orm操作的基础认识全部内容,希望文章能够帮你解决Django-orm操作的基础认识所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。