Cascade

Django——Model

不羁岁月 提交于 2021-02-14 12:55:13
一、 ORM 在 MVC 或者说 MTV 设计模式中,模型(M)代表对数据库的操作。那么如何操作数据库呢? 我们可以在 Python 代码中嵌入 SQL 语句。 但是问题又来了,Python 怎么连接数据库呢?可以使用类似 pymysql 这一类的第三方模块(针对不同的数据库,有不同的模块)。 如果你有很多的数据库操作,并且你的 Python 程序员不是专业的 DBA,写的 SQL 语句很烂,甚至经常写错,怎么办? 聪明的人想出了一个办法:用 Python 语法来写,然后使用一个中间工具将 Python代码翻译成原生的 SQL 语句。这个中间工具就是所谓的 ORM(对象关系映射)! ORM(object—relationship--mapping)将一个 Python 的对象映射为数据库中的一张关系表。它将 SQL 封装起来,程序员不再需要关心数据库的具体操作,只需要专注于自己本身代码和业务逻辑的实现。 于是,整体的实现过程就是:Python 代码,通过 ORM 转换成 SQL 语句,再通过pymysql 去实际操作数据库。 最典型的 python ORM 就是 SQLAlchemy 了,如果你的 Web 框架自身不带 ORM 系统,那么你可以安装使用它。 Django 自带 ORM 系统,不需要额外安装别的 ORM。当然,也可以安装并使用其它的 ORM,比如 SQLAlchemy

【Django】ORM操作#1

断了今生、忘了曾经 提交于 2021-02-13 12:01:22
"@[toc] <font color=black>补充:数据迁移与反迁移</font> <hr> # 迁移: python manage.py makemigrations # 纪录变成 python manage.py migrate # 迁移到数据库 # 反迁移: python manage.py inspectdb > models.py 执行后,会在执行的文件内写入模型类(文件可随意指定) 一、介绍 概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的基石. 简单的说,ORM时通过使用描述对象和数据库之间映射的 元数据 ,将程序中的对象自动持久华到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. 由来 让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational). 几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中. 按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中存在很多杂乱的SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的. 优势 ROM解决的主要问题是对象和关系的映射

[CVPR2017] Weakly Supervised Cascaded Convolutional Networks论文笔记

眉间皱痕 提交于 2021-02-13 10:37:27
https://www.csee.umbc.edu/~hpirsiav/papers/cascade_cvpr17.pdf Weakly Supervised Cascaded Convolutional Networks, Ali Diba, Vivek Sharma, Ali Pazandeh, Hamed Pirsiavash and Luc Van Gool 亮点 通过多任务叠加(分类,分割)提高了多物体弱监督检测的正确率 通过利用segmentation筛选纯净的proposals,得到了更鲁棒的结果 为弱监督分割任务设计比较鲁棒的loss 只考虑全局的分类结果和置信度对高的部分 通过loss的weights关注到最需要关注的部分 相关工作 One of the most common approaches [7] consists of the following steps: generates object proposals, extracts features from the proposals, applies multiple instance learning (MIL) to the features and finds the box labels from the weak bag (image) labels. 弱监督物体检测难点:

django contenttype

帅比萌擦擦* 提交于 2021-02-12 05:46:16
下图即为django的contenttype表 models.py 1 from django.db import models 2 from django.contrib.contenttypes.models import ContentType 3 from django.contrib.contenttypes.fields import GenericForeignKey,GenericRelation 4 5 6 class PythonBasic(models.Model): 7 course_name = models.CharField(max_length=32 ) 8 coupon = GenericRelation( " Coupon " ) # 反向查询 通过此字段,类似于 releted_name 9 class Oop(models.Model): 10 course_name = models.CharField(max_length=32 ) 11 coupon = GenericRelation( " Coupon " ) 12 class Coupon(models.Model): 13 coupon_name = models.CharField(max_length=32 ) 14 content_type = models

django的contenttype表

我的未来我决定 提交于 2021-02-12 05:24:23
https://blog.csdn.net/aaronthon/article/details/81714496 这篇文章已经非常详细了,供自己以后忘了...回看...... 总结: 当一张表和多个表FK关联,并且多个FK中只能选择其中一个或其中n个时,可以利用contenttype,固定用三个字段                content_type = models.ForeignKey(ContentType,on_delete=models.CASCADE) # 关联course or degree_course object_id = models.PositiveIntegerField() content_object = GenericForeignKey('content_type', 'object_id') # obj.content_object获取关联对象    price_policy = GenericRelation("PricePolicy") # GenericForeignKey反向查询,不会生成表字段 obj.price_policy.all()获取所有关联对象    实际用法 from .models import PricePolicy p=PricePolicy.objects.get(pk=1) p.content_object

MySQL 基础

廉价感情. 提交于 2021-02-12 04:40:06
学院视频简单汇总 一、常用命令 在命令行中,配置好环境变量后,通过cmd可以直接进入mysql命令行模式,同时列举几种常用命令 # 进入mysql数据库,密码可以先不写,打完-p后再输入,防止被别人看到 mysql -u账号 -p密码 -u 用户名 -p 密码 -h 服务器名称 -p 端口号 -D 打开指定数据库 --prompt=name 设置命令提示符 --delimiter=name 指定分隔符 -V,--version 输出版本信息并且退出 exit,quit,\q 退出 # 创建数据库 CREATE {DATABASE|SCHEMAS} [IF NOT EXISTS] db_name DEFAULT CHARACTER SET = 'UTF8|GBK|...'; CREATE DATABASE IF NOT EXISTS myWebSite; # 修改数据库编码方式 ALTER {DATABSE|SCHEMAS} db_name [DEFAULT] CHARACTER SET [=] charset_name; ALTER DATABSE myWebSiteDEFAULT CHARACTER SET = utf8; # 数据库列表 SHOW DATABASE; SHOW SCHEMAS; # 查看指定数据库定义 SHOW CREATE {DATABASE|CEHMAS}

Django之orm查询

大城市里の小女人 提交于 2021-02-12 03:53:21
ORM相关 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称。 一,单表操作(略) 二,多表操作 1,创建模型 全程通过实例演示: 作者模型:一个作者有姓名和年龄。 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息。作者详情模型和作者模型之间是一对一的关系(one-to-one) 出版商模型:出版商有名称,所在城市以及email。 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many)。 模型建立如下: rom django.db import models # Create your models here. class Author(models.Model): nid = models.AutoField(primary_key= True) name =models.CharField( max_length=32 ) age = models

django-ORM的查询条件

余生颓废 提交于 2021-02-11 13:05:21
前提是创建好了ORM的模型(参照https://www.cnblogs.com/ifdashui/p/11901084.html) 现在数据库中存在下列的数据(以下的查询条件根据这些数据做处理) 在models.py中 # -*- coding: UTF-8 -*- from django.db import models class Article(models.Model): title = models.CharField(max_length=200 ) content = models.TextField() class Meta: db_table = ' article ' # 更改这个表的名字,映射到数据中的话名称不是Article_article了,是你自定义设置的article 使用下面这两条命令在数据库中映射:(注意进入项目路径以及有虚拟环境的进入虚拟环境) python manage.py makemigrations python manage.py migrate 接下来就在views.py中操作即可 在model.py中,创建一个ORM模型 from django.db import models class Article(models.Model): title = models.CharField(max_length=200 ) content

MySQL Connector / Python

╄→尐↘猪︶ㄣ 提交于 2021-02-09 08:46:37
MySQL Connector / Python允许Python程序使用符合 Python数据库API规范v2.0(PEP 249) 的API访问MySQL数据库 。 MySQL Connector / Python包括对以下内容的支持: 几乎所有MySQL Server提供的功能都包括MySQL Server版本5.7。 Connector / Python 8.0也支持X DevAPI。有关使用X DevAPI的MySQL Connector / Python的概念和用法的文档,请参阅 X DevAPI用户指南。 在Python和MySQL数据类型之间来回转换参数值,例如Python datetime 和MySQL DATETIME。为方便起见,您可以打开自动转换,或者关闭以获得最佳性能。 标准SQL语法的所有MySQL扩展。 协议压缩,可以压缩客户端和服务器之间的数据流。 使用TCP / IP套接字的连接和使用Unix套接字的Unix连接。 使用SSL保护TCP / IP连接。 独立的驱动。Connector / Python不需要MySQL客户端库或标准库之外的任何Python模块。 1使用Connector / Python连接MySQL 该connect()构造函数创建到MySQL服务器的连接并返回一个 MySQLConnection对象。

MySQL基础语句

懵懂的女人 提交于 2021-02-08 23:03:25
------------------------------------------------ mysql启动不了使用: 1. 先把启动程序kill了 mysqld 2. 重启mysql服务 service mysql restart ------------------------------------------------- 用户相关操作 注:以下命令均需先以root身份登录mysql:mysql -uroot -p 1.添加新用户 (1)创建新用户:> insert into mysql.user(Host,User,Password)     values("localhost","user1",password("password1")); (2)为用户分配权限: 设置用户可以在本地访问mysql:grant all privileges on *.* to username@localhost identified by "password" ; 设置用户只能访问指定数据库:grant all privileges on 数据库名.* to username@localhost identified by "password" ; (3)刷新系统权限表:>flush privileges; 2.查看MySql当前所有的用户:>SELECT DISTINCT