python学习笔记(19-20)

十九、WEB设计

模块urlparse
  >>> urlparse.urlparse(‘http://www.baidu.com:8080/dcoc/123.php;aa=123?sdf#dff#dfr‘)
  (‘http‘, ‘www.baidu.com:8080‘, ‘/dcoc/123.php‘, ‘aa=123‘, ‘sdf‘, ‘dff#dfr‘)

urlunparse组装被分割的表列。

urljoin是组装路径,如:  
  >>> urlparse.urljoin(‘http://www.baidu.com/doc/123.htm‘,‘/dfg/456.asp‘)
  ‘http://www.baidu.com/dfg/456.asp‘
  >>> urlparse.urljoin(‘http://www.baidu.com/doc/123.htm‘,‘dfg/456.asp‘)
  ‘http://www.baidu.com/doc/dfg/456.asp‘

  模块urllib
  urlopen(urlstr,postQueryData=None)可以读取网页内容或一个本地文件,返回一个文件句柄,通过这个文件句柄来读取数据。
  注意这个URL必须是带有协议的,比如www.baidu.com就会出现IOError的异常,http://www.baidu.com就正确了。
  后面的参数是提供给动态页面的post参数的。如果要加get参数,直接在网址后面写上就OK了。
  fp=urlopen(‘http://www.baidu.com‘);可以使用read,readline,readlines,close,fileno,info,geturl来进行操作。
  info提供一个MIME表头说明,提供给其他外部程序辨别。
  geturl获得路径,主要是防止重定向的,不过如果是省略具体文件名的,显示依然省略。如:fp.geturl()得到‘http://www.baidu.com‘ 而没有具体的文件名。

urlretrieve(urlstr,localfile=None,dowloadStatusHook=None)将文件下载到本地。
  第一个参数是路径,第二个参数是存放位置,不填则在临时目录(temp)生成临时文件,第二个参数是个函数,每下载一个数据块就会调用。
  返回2个元素,一个是本地文件名,第二个是MIME表头。
最好在之前调用urlcleanup清除缓存。

quote转换特殊字符为%X形式,如 ~ : + ?等,不转换/
  quote_plus同上,转换/ 同时空格转换为+
  unquote unquote_plus功能相反。

书上提供了一个扒网页的例子,可以参考下。P464

用python实现的CGI程序在网页上和PHP等基本一致,略。
  用python建立web服务器,略。

与web相关的模块,P494

------------------------------------------------------------------------

第二十章 扩展

以前看书的时候就常看到说,python最强的地方是它被成为胶水语言,一直看到最后一章才看到胶水的实现,不过感觉不是传说中的那么方便。

时间: 2024-07-31 23:41:35

python学习笔记(19-20)的相关文章

Python学习笔记19:服务器基础

一 TCP/IP和socket 我们需要对网络传输,特别是TCP/IP协议和socket有一定的了解. socket是进程间通信的一种方法,它是基于网络传输协议的上层接口. socket有许多种类型,比如基于TCP协议或者UDP协议(两种网络传输协议).其中又以TCP socket最为常用. TCP socket与双向管道(duplex PIPE)有些类似,一个进程向socket的一端写入或读取文本流,而另一个进程可以从socket的另一端读取或写入, 比较特别是,这两个建立socket通信的进

python学习笔记19(序列的方法)

序列包含有宝值 表(tuple)和表(list).此外,字符串(string)是一种特殊的定值表,表的元素可以更改,定值表一旦建立,其元素不可更改. 任何的序列都可以引用其中的元素(item). 下面的内建函数(built-in function)可用于序列(表,定值表,字符串): # s为一个序列 len(s)          返回: 序列中包含元素的个数 min(s)         返回: 序列中最小的元素 max(s)        返回: 序列中最大的元素 all(s)       

Python学习笔记19(算法)

1.二分查找 只能用二分查找查找有序列表 def bin_search(data,val): #data为被查找的列表,val是要查找的值 low = 0 high = len(data) - 1 while low <= high: mid = (low+high)//2 if data[mid] == val: return mid #找到了,返回val所在的索引 elif data[mid] < val: low = mid + 1 else: high = mid - 1 return

python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列

标准库:一些最爱 集合.堆和双端队列 集合 集合Set类位于sets模块中. >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> set(range(10)) set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 集合是由序列(或其他可迭代的对象)构建的.主要用于检查成员资格,因此,副本是被忽略的: >>> range(10)*2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

python学习笔记[3]-邮件的发送

本文摘抄自:http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍:    1.smtplib模块 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])   SMTP类构造函数,表示与SMTP服务器之间的连接,通过这个连接可以向smtp服务器发送指令,执行

python学习笔记11-python内置函数

python学习笔记11-python内置函数 一.查看python的函数介绍: https://docs.python.org/2/library/ 二.python内置函数 1.abs获取绝对值: 通过python官网查看abs abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装