python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返回元素个数 d[key] Return the item of d with key key. Raises a KeyError if key is not in the map. If a subclass of dict defines a method _missing_() and key…
Model操作(一) 一.Django ORM基本配置 ORM:关系对象映射(Object Relational Mapping,简称ORM)db Frist:到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞:1.创建数据库,设计表结构和字段;2.使用 MySQLdb 来连接数据库,并编写数据访问层代码;3.业务逻辑层去调用数据访问层执行数据库操作.Code Frist:根据代码中定义的类来自动生成数据库表.django遵循此类原则. 1.修改project数据库配置(程序主目…
 一.Web框架概述  Web框架本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python # -*- coding:utf-8 -*- # _author_soloLi import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n".encode("utf-8&q…
django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), #精确匹配 url(r'^articles/([0-9]{4})/$', views.year_archive), #动态路由 url(r'^articles/([0-9]{4})/([0-9]{2…
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1.创建django程序 通过命令行 django-admin startproject mysite 创建project 一个工程可以包含多个app,app共用一个project的配置文件 cd mysite python manage.py startapp app01 创建app01 pyt…
python学习整理笔记--集合 set 集合的用途:成员测试和消除重复的条目,进行集合运算 注意:花括号或set()函数可以用于创建集合. 注意:若要创建一个空的集合你必须使用set(),不能用{}:{}将创建一个空的字典 运算与用法 并集 a | b # letters in either a or b 交集 a & b # letters in both a and b 减 a - b # letters in a but not in b 对称 a ^ b # letters in a…
Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) 并入一个列表 将指定列表中的所有元素附加到另一个列表的末尾:相当于a[len(a):] = L list.insert(i,x) 指定位置i插入一个元素x 在给定位置插入一个元素.第一个参数是插入的元素的索引,所以 a.insert(0, x) 在列表的最前面插入,a.insert(len(a),…
Python 文档学习笔记2 数据结构--元组和序列 元组 元组在输出时总是有括号的 元组输入时可能没有括号 元组是不可变的 通过分拆(参阅本节后面的内容)或索引访问(如果是namedtuples,甚至可以通过属性) 特例(仅含0,1个元素) >>> empty = () >>> singleton = 'hello', # <-- note trailing comma >>> len(empty) 0 >>> len(sin…
一.socket(单链接) 1.socket:应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面:也有人将socket说成ip+port,ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序,ip地址是配置到网卡上的,而port是应用程序开启的,ip与port的绑定就标识了互联网中独一无二的一个应用程序:而程序的pid是同一台机器上不同进程或者线程的标…
1.操作汇总 # 增 # # models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargs # obj = models.Tb1(c1='xx', c2='oo') # obj.save() # 查 # # models.Tb1.objects.get(id=123) # 获取单条数据,不存在则报错(不建议) # models.Tb1.objects.all() # 获取全部 # models.Tb1.objects…
 一.中间件  中间件是一类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法:在django项目的settings模块中,有一个 MIDDLEWARE 变量,其中每一个元素就是一个中间件.# MIDDLEWARE = [# 'django.middleware.security.SecurityMiddleware',# 'django.contrib.sessions.middleware.SessionMiddleware',#              …
一.模板语言  1.在前段展示:对象/字典/元组 class Business(models.Model): # id #用默认的自增id列 即:Business中有3列数据(id, caption, code) caption = models.CharField(max_length=32) code = models.CharField(max_length=32,default="SA") #models.py from django.shortcuts import rend…
 Form组件  Django的Form主要具有一下几大功能: --生成HTML标签 --验证用户数据(显示错误信息) --HTML Form提交保留上次提交数据 --初始化页面显示内容 1.内置字段(用于保存正则表达式-->对用户请求数据的验证) Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_text='', 帮助信息(在标签旁边显示) er…
 一.Ajax(part1) Ajax即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,AJAX = 异步 JavaScript和XML(标准通用标记语言的子集),AJAX 是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用 AJAX)如果需要更新内容,必须重载整…
django  Pagination(分页) django 自带的分页功能非常强大,我们来看一个简单的练习示例: #导入Paginator>>> from django.core.paginator import Paginator#处理的对象 >>> objects = [) #查看总数据条数 >>> p.count 4#查看总页数 >>> p.num_pages >>> type(p.page_range) #…
缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显,这就是需要缓存的地方,缓存一些东西是为了保存那些需要很多计算资源的结果,这样的话就不必在下次重复消耗计算资源. Django自带了一个健壮的缓存系统来让你保存动态页面这样避免对于每次请求都重新计算.方便起见,Django提供了不同级别的缓存粒度:你可以缓存特定视图的输出.你可以仅仅缓存那些很难生产出…
首先自我批评一下,说好的一天写一篇博客,结果不到两天,就没有坚持了,发现自己做什么事情都没有毅力啊!不能持之以恒.但是,这次一定要从写博客开始来改掉自己的一个坏习惯. 可是写博客又该写点什么呢? 反正是写给自己看的,就从梳理知识点开始吧,想想自己用python也有几年时间了,可是python相关的书籍就没有正儿八经地看过一本,相关知识点也不牢靠,经常遇到很多基础问题也要google一下, 导致自己平时工作效率也比较低,是时候好好整理一下了. <python核心编程>一直是我想看的一本书,打算趁…
一.变量赋值及命名规则① 声明一个变量及赋值 #!/usr/bin/env python # -*- coding:utf-8 -*- # _author_soloLi name1="solo" name2=name1 print(name1,name2) name1 = "hehe" print(name1,name2) #name1的值为hehe,name2的值为solo ② 变量命名的规则 1.变量名只能是 字母.数字或下划线的任意组合 2.变量名的第一个字符…
一.HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器根据标记语言的规则去解释它. 浏览器负责将标签翻译成用户"看得懂"的格式,呈现给用户!(例:djangomoan模版引擎) 翻译成人话:一套规则,浏览器认识的规则. 标准模板: <!DOCTYPE html> #标准规范 <html lang="en&q…
if语句是选取要执行的操作. 一.if语句 1.通用格式 形式是if测试,后面跟着一个或多个可选的elif(else if)测试,以及一个最终选用的else块.测试和else部分可以结合嵌套语句块,缩进列在行首下面.Python会执行第一个结算结果为真的代码块,或者如果所有测试都为假时,就执行else块. if语句一般形式如下: if <test1>:     <statements1> elif <test2>:     <statements2> els…
列表和字段,这两种类型几乎是Python所有脚本的主要工作组件.他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套. 一.列表 列表的主要属性: *任意对象的有序集合 从功能上看,列表就是收集其他对象的地方,可以把它看作组.列表所包含每一项都保持了从左到右的位置顺序(它们是序列) *通过偏移读取 和字符串一样,可以通过列表对象的偏移对其进行索引,从而读取对象的某一部分内容.可以自行分片和合并之类的任务. *可变长度,异构以及任意嵌套 列表可以实地增长或者缩短,并且可…
while语句,提供了编写通用循环的一种方法,而for语句是用来遍历序列对象内的元素,并对每个元素运行一个代码块.break,continue用在循环内,跳出整个循环或者跳出一次循环. 一.while循环 1.一般格式 格式:首行以及测试表达式,有一列或多列缩进语句的主体以及一个选用的else部分(控制权离开循环时而没有碰到break语句时会执行) python会一直计算开投的测试,然后执行循环主体内的语句,直到测试返回假值为止. while <test>:     <statement…
字符串是一个有序的字符集合,用于存储和表现基于文本的信息. 常见的字符串常量和表达式 T1=‘’ 空字符串 T2="diege's" 双引号 T3="""...""" 三重引号块 T4=r'\temp\diege' Raw字符串 抑制(取消)转义,完全打印\tmp\diege,而没有制表符 T5=u’diege' Unicode字符串 T1+T2     合并 T1*3    重复 T2[i]    索引 T2[i:j] 分片…
Python中的文件操作 Python中文件打操作离不开两个模块  os 和 shutil os:操作文件.目录: Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的. shutil:移动.复制目录或文件:是一种高层次的文件操作工具,类似于高级API,而且主要强大之处在于其对文件的复制与删除操作更是比较支持好. #!/usr/bin/env python #--encoding:utf-8-- import os import shutil…
RabbitMQ是消息队列.之前学过的队列queue:线程queue(threading queue),只是多个线程之间进行数据交互.进程queue(processing queue),只是父进程与子进程进行交互.两个独立的程序之间进行交互就需要中间代理(rabbitMQ) 1.最简单的生产者.消费者模型(一对一) #生产者 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-soloLi import pika connection =…
一.Memcached1.简介Memcached 是一个高性能的分布式内存对象缓存系统,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性.用来存储小块的任意数据(字符串.对象).比如:数据库调用.API调用或者是页面渲染的结果. 2.本质它是一个简洁的key-value存储系统.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 3.特征 ①协议简单 ②基于libevent的事…
·集合操作及其相应的操作符表示集合中没有插入,只有添加,因为毕竟无序 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Vergil Zhang list_1 = [1, 4, 5, 7, 3, 6, 7, 9] list_1 = set(list_1) print(list_1, type(list_1)) list_2 = set([2, 6, 0, 66, 22, 8]) print(list_1,list_2) #交集 print…
I/O编程 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件) 读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: f = open('/Users/michael/test.txt', 'r') 如果文件不存在,open()函数就会抛出一个…
一.python操作excel,python操作excel使用xlrd.xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的.这几个模块使用pip安装即可,下面是这几个模块的使用.  二.xlrd模块,xlrd模块用来读excel,具体用法如下: import xlrd #打开excel wb=xlrd.open_workbook('abc.xlsx')#打开的这个excel必须存在,否则会报错 #获取所有sheet页的…
我们在写代码的时候,经常会操作数据库,增删改查,数据库有很多类型,关系型数据库和非关系数据库,这里咱们介绍一下python怎么操作mysql.redis和mongodb. 一.python操作mysql数据库 python3中操作mysql数据需要安装一个第三方模块,pymysql,使用pip install pymysql安装即可,在python2中是MySQLdb模块,在python3中没有MySQLdb模块了,所以使用pymysql. import pymysql # 创建连接,指定数据库…