接触过Django的同学都应该十分熟悉它的ORM系统。对于python新手而言,这是一项几乎可以被称作“黑科技”的特性:只要你在models.py中随便定义一个Model的子类,Django便可以:获取它的字段定义,并转换成表结构读取Meta内部类,并转化成相应的配置信息。对于特殊的Model(如abstract、proxy),还要进行相应的转换为没有定义objects的Model加上一个默认的Manager开发之余,我也曾脑补过其背后的原理。曾经,我认为
系统 2019-09-27 17:38:17 1740
一、参数传入规则可变参数允许传入0个或任意个参数,在函数调用时自动组装成一个tuple;关键字参数允许传入0个或任意个参数,在函数调用时自动组装成一个dict;1.传入可变参数:defcalc(*numbers):sum=0forninnumbers:sum=sum+n*nreturnsum以上定义函数,使用如下:传入多个参数,calc(1,2,3,4)30#函数返回值传入一个列表,nums=[1,2,3]calc(*nums)#通过*将list中的元素作
系统 2019-09-27 17:38:04 1740
前言很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见。以前在Ubuntu下,用`unzip-OGBKfilename.zip`就可以搞定。换了Fedora后,暂时没发现乱码的压缩文件。晚上下载一本书的光盘,又碰到了乱码。尝试之前的方法没成功。看了下unzip的help,没-O那个参数了==刚好找到一个用python解决的办法,分享下。新建一个`.py`后缀的文件,直接复制粘贴代码:#!/usr/bin/envpython#-
系统 2019-09-27 17:38:03 1740
if语句>>通用格式if语句一般形式如下:if:elif:else:另外需要注意的是,Python中是没有switch/case语句的while循环while语句是Python语言中最通用的迭代结构,简而言之,只要顶端测试一直计算到真值,就会重复执行一个语句块。>>一般格式while:else:>>break,continue,pass和循环elsebreak跳出最近所在的循环(跳过整个循环语句)。continue跳到最近所在循环的开头处(来到循环的首行)
系统 2019-09-27 17:37:45 1740
集合特点:集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键,与列表和元组不同,集合无法通过数字进行索引。此外,集合中的元素不能重复。定义set()->newemptysetobjectset(iterable)->newsetobjects={0}应用:去重>>>lst1=[1,1,2,2,3,4,2]>>>list(set(lst1))[1,2,3,4]常用操作集合支持一系列标准操作,包括并集|、交集&、差集-和对称差集^子集<<=及超集>>=
系统 2019-09-27 17:37:45 1740
我们最终的视图技巧利用了一个高级python技术。假设你发现自己在各个不同视图里重复了大量代码,就像这个例子:defmy_view1(request):ifnotrequest.user.is_authenticated():returnHttpResponseRedirect('/accounts/login/')#...returnrender_to_response('template1.html')defmy_view2(request):ifno
系统 2019-09-27 17:37:44 1740
1、局部变量foriinrange(5):printi,printi,运行结果:012344i是for语句里面的局部变量。但在python里面,在同一方法体内,定义了一个局部变量,该变量的作用域是定义行开始至该方法体结束。在其他编程语言,“printi”那一句是有误的,因为i没有定义例1:deffunc():a=100ifa>50:b=Trueprintbif__name__=='__main__':func()结果:True例2:deffunc():a=
系统 2019-09-27 17:37:35 1740
back>>1.打日志方式调试*打开DDMS透视图(perspective)*在Devices视图中会看到运行的设备,选中一个即可。-如果没有运行的设备,可点击右侧下三角运行Resetadb*给LogCat视图添加过滤器-点击"+",createFilter,FilterName随意,byLogTag:不能随意,bypid不用填,byLogLevel选none表示所有级别。如图:-在程序中凡是运行到System.ou的t输出都会在新建的sysout面板中打
系统 2019-08-29 23:49:23 1740
当Web服务器接收到对静态Web页的请求时,服务器将该页直接发送到请求浏览器。但是,当Web服务器接收到对动态页的请求时,它将作出不同的反应:它会将该页传递给一个负责完成页的特殊软件。这个特殊软件叫做应用程序服务器。应用程序服务器读取页上的代码,根据代码中的指令完成页,然后将代码从页上删除。所得的结果将是一个静态页,应用程序服务器将该页传递回Web服务器,然后Web服务器将该页发送到请求浏览器。当该页到达时,浏览器得到的全部内容都是纯HTML。下面是此过程
系统 2019-08-29 23:46:49 1740
目前Document类的结构已经比较完善了,由于编辑Document涉及到界面,所以先把GUI写出来。用Java做界面一直是比较麻烦的事情,早期的AWT太慢,现在很少用了,Swing我没用过,但速度也快不了多少,最后发现SWT是一个不错的本地库,速度够快,而且效果和本地平台一样(因为是调用的平台相关API),不仔细看根本看不出是java做的。不过,考虑到移植性,我决定把Frame分成平台无关和相关两层,这样就有足够的灵活性,将来可以用Swing或者其他GU
系统 2019-08-29 23:45:24 1740