Entry

Django 07模型层—单表操作

此生再无相见时 提交于 2020-05-07 22:06:04
Django 模型层—单表操作 一、数据库相关设置 若想将模型转为mysql数据库中的表,需要在settings中配置 # Mysql连接配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'lxx', 'USER': 'root', 'PASSWORD': '123', 'HOST': '127.0.0.1', 'PORT': 3306, 'ATOMIC_REQUEST': True, 'OPTIONS': { "init_command": "SET storage_engine=MyISAM", } } } ''' 'NAME':要连接的数据库,连接前需要创建好 'USER':连接数据库的用户名 'PASSWORD':连接数据库的密码 'HOST':连接主机,默认本机 'PORT':端口 默认3306 'ATOMIC_REQUEST': True, 设置为True统一个http请求对应的所有sql都放在一个事务中执行(要么所有都成功,要么所有都失败)。 是全局性的配置, 如果要对某个http请求放水(然后自定义事务),可以用non_atomic_requests修饰器 'OPTIONS': { "init_command": "SET storage_engine=MyISAM

Django之ORM操作Mysql

你说的曾经没有我的故事 提交于 2020-05-07 21:33:15
一、单表操作 # 单表查询操作基本方法 class BookList(models.Model): title = models.CharField(max_length=32 ) price = models.DecimalField(max_digits=8,decimal_places=2) # 总共8位,小数占2位 publist_date = models.DateField() # DateField年月日,DateTimeField详细时间 # 单独测试models.py文件 # 将manage.py中前4行拷贝到一个新的test.py文件中 import os import sys if __name__ == " __main__ " : os.environ.setdefault( " DJANGO_SETTINGS_MODULE " , " day20.settings " ) import django django.setup() from app01 import models # 插入语句 # book_obj = models.BookList.objects.create(title="三国演义",price=1123.22,publist_date='2019-08-28') # import datetime # ctime =

2 Model层

冷暖自知 提交于 2020-05-07 21:30:20
2 Model层 - 模型查询 阅读目录 2.查询集 3.字段查询 4 自连接 1.简介 查询集表示从数据库中获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句 接下来主要讨论如下知识点 查询集 字段查询:比较运算符,F对象,Q对象 回到顶部 2.查询集 在管理器上调用过滤器方法会返回查询集 查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤 惰性执行:创建查询集不会带来任何数据库的访问,直到调用数据时,才会访问数据库 何时对查询集求值:迭代,序列化,与if合用 返回查询集的方法,称为过滤器 all() filter() exclude() order_by() values():一个对象构成一个字典,然后构成一个列表返回 >>> BookInfo.books2.values() [{'bcommet': 34L, 'btitle': u'\u5c04\u96d5\u82f1\u96c4\u4f20', 'bpub_date': datetime.datetime(1980, 5, 1, 0, 0, tzinfo=<UTC>), 'isDelete': False, u'id': 1L, 'bread': 12L}, {'bcommet': 40L,

[Django学习] Django基础(10)_ContentType学习总结

此生再无相见时 提交于 2020-05-07 21:22:13
一. 什么是ContentTypes   Django ContentTypes是由Django框架提供的一个核心功能。Django ContentTypes是一个记录了项目中所有model元数据的表,表中一条记录对应着一个存在的model。   当使用django-admin初始化一个django项目的时候,可以看到在默认的INSTALL_APPS已经包含了django.contrib.contenttypes:   INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]   django.contrib.contenttypes.models文件: class ContentType(models.Model): app_label = models.CharField(max_length=100) model = models.CharField(_('python model class name'), max_length=100) objects =

运维开发笔记整理-Django模型语法

半城伤御伤魂 提交于 2020-05-07 21:21:16
            运维开发笔记整理-Django模型语法                                   作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.模型基本概念 1>.什么是模型   模型是你的数据唯一的,权威的信息源。它包含你所存储数据的必要字段和行为。每个模型对应数据库中唯一的一张表。它包含你所存储数据的必要字段和行为。每个模型对应数据库中唯一的一张表。 2>.如何编写模型   模型:每个模型都用一个类表示,该类继承自“django.db.models.Model”。每个模型有多个类的属性变量,而每一个类的属性变量又都代表类数据库表中的一个字段。   字段:每个字段通过Field类的一个实例表示,例如字符字段CharField和日期字段DataTimeField。这种方法告诉Django每个字段保存着什么类型的数据。(偷偷告诉你,Django支持的模型字段比数据库本身的字段要支持的多,比如MySQL的varchar类型,就被Django封装成了不同的模型字段,比如EmailField)。   字段名:每个Field实例的名字(例如username)就是字段的名字,并且是机器刻度的格式。你将在Python代码中使用它的值,并且你的数据库把它为表的列名。 3>.模型字段类型   模型字段类型又很多,比如CharField

Django 框架篇(五): ORM详细操作

本小妞迷上赌 提交于 2020-05-07 20:30:01
ORM之models.py 字段: 常用字段 : AutoField:   自增的整形字段,必填参数 primary_key = True,则成为数据库的主键。无该字段时,django自动创建。   一个model不能有两个AutoField字段。 IntegerField:   一个整数类型。数值的范围是 -2147483648 ~ 2147483647。 CharField:   字符类型,必须提供max_length参数。max_length表示字符的长度。 DateField: 日期类型,日期格式为YYYY-MM-DD,相当于Python中的datetime.date的实例。 参数: auto_now:每次修改时修改为当前日期时间。 auto_now_add:新创建对象时自动添加当前日期时间。   auto_now和auto_now_add和default参数是互斥的,不能同时设置。 DatetimeField: 日期时间字段,格式为YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime的实例。 字段类型,详情可点击查询 官网 。 AutoField(Field) - int自增列,必须填入参数 primary_key= True BigAutoField(AutoField) - bigint自增列

天天用Synchronized,底层原理是个啥?

ぃ、小莉子 提交于 2020-05-07 19:30:46
作者:iuxiaopeng https://www.cnblogs.com/paddix/p/5367116.html Synchronized 的基本使用 Synchronized 的作用主要有三个: 确保线程互斥的访问同步代码 保证共享变量的修改能够及时可见 有效解决重排序问题 从语法上讲,Synchronized 总共有三种用法: 修饰普通方法 修饰静态方法 修饰代码块 接下来我就通过几个例子程序来说明一下这三种使用方式(为了便于比较,三段代码除了 Synchronized 的使用方式不同以外,其他基本保持一致)。 没有同步的情况 代码段 1: package com.paddx.test.concurrent; public class SynchronizedTest { public void method1(){ System.out.println("Method 1 start"); try { System.out.println("Method 1 execute"); Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Method 1 end"); } public void method2(){ System

【数据结构】9.java源码关于HashTable

扶醉桌前 提交于 2020-05-07 19:10:34
1.hashtable的内部结构 基础存储数据的hash桶由Entry结构的数组存放 而entry数据结构,有hash,key和value,还有一个指向下一个节点的引用next对象 这里就和hashmap中的数据结构不一样了,hashmap中的数据结构是node,虽然结构上差不多, 但是setvalue的非空判断和hashcode的散列取值 都是和node不一样的 那么这些数据在什么时候用呢??? 下面来一一了解 2.hashtable的构造函数 这里需要注意一下了,我们前面提到说hashmap中的构造函数,其实实际上是不对hash桶进行实例化的,但是hashtable不一样,他会直接实例化大小,并且实例化成你指定的大小 而且这里默认的初始化容器的大小是11,负载因子代销默认0.75,负载因子的作用就是规定最大容量:hash桶的大小*负载因子 public TestHashTable( int initialCapacity, float loadFactor) { // 非空判断 if (initialCapacity < 0 ) throw new IllegalArgumentException("Illegal Capacity: " + initialCapacity); if (loadFactor <= 0 || Float.isNaN(loadFactor))

Java OOP——第六章 框架集合

左心房为你撑大大i 提交于 2020-05-07 19:01:06
1、 集合框架包含的主要内容及彼此之间的关系: 图 1 : 集合框架:是为了表示和操作集合而统一规定的一种统一的标准体系结构。 包含三大块的内容:对外的接口、接口的是实现和对集合运算的算法;     Java 集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中:      ●接口:表示集合的抽象数据类型,在图1中用虚线框表示,下图绿色的:                 ●实现:集合框架中接口的具体实现,图1中一实线表示,粗实线表示常用的:上图蓝色的:      ●算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法;如:查询、排序;      Java 提供了进行集合操作的工具类Collections(类似于Arrays类): 它提供了对集合进行排序、 遍历等多种算法实现; 2、 java 集合中的的两大类接口:Collection和Map;      ●Collection :Collection 接口存储一组不唯一,无序的对象(List:不唯一、有序;Set:唯一、无序;所以Collection接口是不唯一无序的);      ●List :List 接口继承Collection 接口,存储一组不唯一(允许重复),有序(以插入的次序来放置元素,不会重写排列)的对象;           ●Set :Set

【Python基础】lpthw

人走茶凉 提交于 2020-05-07 18:48:49
  本节将会介绍如何构建一个项目骨架目录。骨架目录中会包含 项目文件布局 、 自动测试代码 、 模块 及 安装脚本 。   一、环境配置(win10)   1. 检查并确认自己只安装了一个python版本。 cd ~ python   可以检查python版本。   2. 运行pip,确认有基本的安装。 > pip list pip(version xxx.xxx) setuptools(version xxx.xxx)   3. 使用下述命令设置虚拟环境 > pip install virtualenv   4. 创建一个.venvs文件夹,在里面装虚拟环境 > mkdir .venvs > virtualenv --system-site-packages .venvs/lpthw   这两个命令创建了一个.venvs文件夹,用来存储不同的虚拟环境,然后创建了第一个虚拟环境lpthw。虚拟环境是一个用来安装软件的“假的”地方,这样我们就可以 针对不同项目使用不同版本的软件包 。   5. 安装完成后需要激活虚拟环境    先cd到.venvs所在目录 ,然后执行以下命令进行激活: > .\.venvs\lpthw\Scripts\activate   这样就为PowerShell运行activate脚本,它把你当前的shell设为使用lpthw虚拟环境,以后每次使用书中的软件