ORM,Django对数据库的连接和使用
ORM,Django对数据库连接和使用数据
ORM(对象关系映射) 很多语言中的web框架都有这个概念
为什么要有ORM?
- 写程序离不开数据
- 新的语法,不需要我们自己写SQL语句
- 我们按照新的语法写代码,他帮我翻译成SQL语句
ORM优点:
- 开发效率高
- 容易掌握
- 容易移植
ORM的缺点:
- 代码执行效率低
ORM的重点相互对应
类 数据表 属性 字段 对象 数据行
ORM能做哪些事情
- 操作数据表
- 操作数据行
Django中的ORM如何使用
1.Django框架连接哪个数据库 ---》settings.py中的DATABASE列表中
2.告诉Django框架用什么连接数据库
在和settings.py同级目录中的__init__.py中配置一下参数
import pymysql
pymysql.install_as_MySQLdb()
3.在app下面的models.py这个文件中定义类
class Book(models.Model):
id = models.AutoField(primary_key=True) #在数据库中生成自增的字段
title = models.CharField(max_length=20) # varchar(20)
publisher = models.ForeignKey(to='Publisher') # ORM自动刚给外键字段加_id,即publisher指的是关联的对象,publisher_id才是Book中的关联键
外键关联后查询,所以为数据库添加数据时要注意参数!!!!
book_obj.publisher # 书籍关联的出版社对象
book_obj.publisher_id # 书籍关联的出版社id(数据库中真正保存的那一列的值) Book.objects.create(title=new_title, publisher=Publisher.objects.get(id=publisher_id)) #属性为publisher,则需要添加一个对象
Book.objects.create(title=new_title, publisher_id=publisher_id) #添加对应的外键关联值
4.俩个命令,在Terminal中输入以下命令,使其在数据库中生成数据
python manage.py makemigrations #在(app/migrations)上记录models.py的变更记录
python manage.py migrate #把变更记录翻译成SQL语句,去数据库执行
ORM,Django对数据库的连接和使用的更多相关文章
- 让Django支持数据库长连接(可以提高不少性能哦)
书接上回 上回我们说到:<在生产系统使用Tornado WebServer来代替FastCGI加速你的Django应用> 那么现在很流行用一些高性能的nonblock的app server ...
- django 操作数据库--orm(object relation mapping)---models
思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...
- Django之 数据库ORM
一.ORM Django的 业务 少不了 跟数据库打交道,不然没有数据库保存一些数据将是一件很糟糕的事情.Django 对 数据库 支持原生的 SQL语句,但更好的对数据库支持,Django自己有一套 ...
- 使django与数据库保持长连接
最近遇到一个很蛋疼的问题,写了一个后台管理系统, 由于是后台管理系统,所以使用频率不是很高,当django程序在闲置一段时间后,再次打开后台系统,就变得很慢,然后又好了.查了很多方面,从模板引擎到请求 ...
- django 多数据库时 ORM语句 选择数据库
多数据库时ORM语句选择数据库 不需要save的操作: 查询(删除的话查询语句后面加一个.delete()即可,修改的话在后面加一个.update()即可): models.表名.objects.us ...
- django mysql 数据库配置
在settings.py中保存了数据库的连接配置信息,Django默认初始配置使用sqlite数据库. DATABASES = { 'default': { 'ENGINE': 'django.db. ...
- Django与数据库操作
Django与数据库操作 数据库连接的方法 web 框架 django --- 自己内部实现 (ORM) + pymysql(连接) Flask,tornado --- pymysql SQLArch ...
- 第二章、Django以及数据库的配置
目录 第二章.Django以及数据库的配置 一.小白必会三板斧 二.静态文件配置 三.form表单 action和method参数可以写的形式 四.request对象及方法 五.django连接数据库 ...
- python学习笔记--Django入门三 Django 与数据库的交互:数据建模
把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller (MVC)模式.在这个模式中, Model 代表数据存取层,View 代表的是系统中 ...
随机推荐
- Spark入门案例 - 统计单词个数 / wordcount
Scala版 import org.apache.spark.{SparkConf, SparkContext} object WordCountScala { def main(args: Arra ...
- Java中eq、ne、ge、gt、le、lt的含义
Java中eq.ne.ge.gt.le.lt 关系运算符包括EQ.NE.GE.GT.LE.LT几个,关系运算符返回的是真"True"或假"False". eq( ...
- java中LinkedList ArrayList 数组 HashSet 存储数据测试
话不多少,直接上代码 import java.text.SimpleDateFormat;import java.util.*; public class testList { public stat ...
- 以鶸ice为例,手撸一个解释器(一)明确目标
代码地址 # HelloWorld.ice print("hello, world") 前言(废话) 其实从开始学习编译原理到现在已经有快半年的时间了,但是其间常常不能坚持看下去龙 ...
- Involuting Bunny! (2021.8)
CF1555F & Submission. Tags:「A.生成树」「B.Tricks」 分类处理询问的 trick:连接两个连通块的边显然合法,先用这些边构建生成森林.发现每条边 ...
- 手撸一个springsecurity,了解一下security原理
手撸一个springsecurity,了解一下security原理 转载自:www.javaman.cn 手撸一个springsecurity,了解一下security原理 今天手撸一个简易版本的sp ...
- CesiumJS-01 环境搭建
CesiumJS 环境搭建 操作环境: OS:Windows 10 专业版 19042.685 64 位操作系统 1.安装Node.js (1)打开Node.js官网 https://nodejs. ...
- 来自牛逼哥的阴间MD5(web)
这个web题目是来自队里面牛逼哥的题目,审计源码, 看到这两个参数,前面的a和b就是直接输出数字,再看下面的,需要弱比较的输出一个c,要求应该是需要一个加密之前是一个0e开头的字符串,加密之后还是0e ...
- Spring Boot+RabbitMQ 通过fanout模式实现消息接收(支持消费者多实例部署)
本文章适用的场景:同一条消息可以被多个消费者同时消费.注意:当消费者多实例部署时,会轮询消费消息.网上有大量的的案例展示:P生产一条消息,消费者服务C中建立Q1和Q2两个队列共同消费.但极少的材料展示 ...
- Java笔记——循环语句
Java笔记--循环语句 1. while语句 规律: 1. 首先计算表达式的值. 2. 若表达式为真,则执行循环语法,直至表达式为假,循环结束. while(表达式) 语句; 例如: i ...