随笔分类 - python-web
python-web
摘要:处理HTTP请求 当客户端浏览器通过URL访问web应用时,首先要做的就是获取用户提交的信息,也就是从HTTP请求数据中获得的信息。HTTP请求数据分为HTTP请求头和Body HTTP请求头包含了一些HTTP请求字段和HTTP GET字段 Body中可以包含任何类型的数据,包含HTTP GET字段、HTTP POST字段,下面只介绍HTTP GET字段,后面再说HTTP POST字段 ...
阅读全文
摘要:pycharm中指定ip和端口 环境: 系统:win7 本机ip:192.168.0.100 1、建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2、django项目中添加路由 3、修改pycharm中的ip和端口 在pycharm右上角运行那里有个下拉菜单,下拉菜单中点击Edit Configuration ...
阅读全文
摘要:django项目添加路由 url函数的第一个参数是匹配url路径的正则表达式,第2个参数是路由函数 第一个正则表达式是r'^$',其中r表示正则表达式字符串不对转义符进行转义。“^”表示匹配URL路径的开始,“$”表示匹配url路径的结束。中间什么也没有,所以第一个正则表达式匹配了根路径“/”。 第二个正则表达式URL路径以“/product”开头,后面跟任意数字,如:http://12...
阅读全文
摘要:pycharm建立第一个django工程 系统:win764 ip: 192.168.0.100 安装django pip install django 左上角建立一个名为Firstdjango工程 查看工程中所有自带的文件修改ALLOWED_HOSTS参照:https://www.cnblogs.com/effortsing/p/10394400.html 运行django项目,右...
阅读全文
摘要:建立第一个Django工程 环境: ip: 192.168.0.92 系统:centos7.5 安装django pip install django 启动一个HelloWorld工程 django-admin.py startproject HelloWorld [root@test2 ~]# ls HelloWorld查看工程自带的文件 [root@test2 ~]# t...
阅读全文
摘要:ORM 直接使用sql语句虽然方便,但缺点是如果要更换数据库可能还需要修改程序中的Sql语句。为了解决这个问题,出现了ORM。在Python语言中使用ORM有多种选择,都是通过模块支持的。 比较著名的有SQLAlchemy和SQLObject,SQLObject比SQLAlchemy简单的多,但是网上实例太少,所以建议使用SQLAlchemy SQLAlchemy模式 首先安装所需模块...
阅读全文
摘要:数据存储 处理JSON格式的数据 JSON字符串与字典相互转换 将字典转换为JSON字符串需要使用json模块的dumps函数。将JSON字符串转换为字典有下面两种方式 (1)使用json模块的loads函数,该函数通过参数传入JSON字符串,然后返回与该JSON字符串对应的字典(推荐) (2)使用eval函数将字典转换为JSON字符串(不建议用这种方式) 尽管eval函数与load...
阅读全文
摘要:常用的正则表达式: Email:'[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[a-zA-Z]{2,3}' IP地址:'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' Web地址:'https?:/{2}\w.+' import re # 匹配email的正则表达式 email='[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[a-zA-Z]{...
阅读全文
摘要:特殊成员方法 除了构造方法(__init__),还可以使用如下4个特殊方法定义自己的序列类,就像列表、字典等序列一样,只不过用自己特殊的行为,所有的特殊方法在名称前后需要加(__) __len__(self): __getitem__(self,key): __setitem__(self,key,value): __delitem__(self,key)
阅读全文
摘要:使用super函数----增量重写普通方法和构造方法 在子类中如果重写了超类的方法,通常需要在子类方法中调用超类的同名方法,也就是说,重写超类的方法,实际上应该是一种增量的重写方式,子类方法会在超类的同名方法的基础上 做一些其他的工作。 如果在子类中要访问超类中的方法,需要使用super函数。该函数返回的对象代表超类对象,所以访问super函数返回的对象中的资源都属于超类。super函数可...
阅读全文
摘要:重写普通方法和构造方法 在类的继承中,当B类继承A类时,B类就会拥有A类的所有成员变量和方法,如果B类中的方法名与A类中的方法名相同,那么B类中同方法名就会重写A类中同方法名。 如果在B类中定义了构造方法,同样也会重写A类中的构造方法,也就是说,创建B类对象,实际上是调用B类中的构造方法,而不是A类中的构造方法。 实例 class A: def __init__(self): ...
阅读全文
摘要:Python的数据类型与数据结构 数据类型分为: 整数型 ;数字的整数 浮点型; 数字带小数 字符串; 用 ‘’ 或者 “” 引用的任意文本 布尔型;只有 True 和 False 数据结构分为: 列表 list 元祖 tuple 字典 dict 集合 set
阅读全文
摘要:类 创建类 #创建一个Person类 class Person: #定义setName方法 def setName(self,name): self.name=name #定义getName方法 def getName(self): return self.name # 定义greet方法 def greet(s...
阅读全文
摘要:生产者-消费者问题与quene模块 下面使用线程锁以及队列来模拟一个典型的案例:生产者-消费者模型。在这个场景下,商品或服务的生产者生产商品,然后将其放到类似队列的数据结构中,生产商品的时间是不确定的, 同样消费者消费生产者的商品的时间也是不确定的。 这里使用quene模块来提供线程间通信的机制,也就是说,生产者和消费者共享一个队列。生产者生产商品后,会将商品添加到队列中。消费者消费商品,...
阅读全文
摘要:python参数 关键字参数和默认值 默认值又叫位置参数 下面实例中 ("李宁") 是位置参数,(greeting="hello") 是关键字参数 实例 def greet(name,greeting): return "问候语:{} 姓名:{}".format(greeting,name) print(greet("李宁",greeting="hello")) E:\py...
阅读全文
摘要:生成器 如果说迭代器是以类为基础的单位产生器,那么生成器(generator)就是以函数为基础的单位产生器。也就是说,迭代器和生成器都是一个值一个值得生产,每迭代一次,只能得到一个值, 所不同的是,迭代器需要在类中定义__iter__和__next__方法,在使用时需要创建迭代器的实例。而生成器是通过一个函数展现的,可以直接调用, 所以从某种意义上来说,生成器在使用上更简洁。 创建称生...
阅读全文
摘要:迭代器和生成器的区别 如果说迭代器是以类为基础的单位产生器,那么生成器(generator)就是以函数为基础的单位产生器。也就是说,迭代器和生成器都是一个值一个值得生产,每迭代一次,只能得到一个值, 所不同的是,迭代器需要在类中定义__iter__和__next__方法,在使用时需要创建迭代器的实例。而生成器是通过一个函数展现的,可以直接调用, 所以从某种意义上来说,生成器在使用上更简洁。...
阅读全文
摘要:迭代器 为什么要用迭代器 为什么不使用列表而使用迭代器,列表可以获取列表长度,然后使用变量i对列表索引进行循环,而且容器理解,也可以获取集合的所有元素。 没错,使用列表的代码是容易理解也很好操作,但这是要付出代价的。列表之所以可以用索引来快速定位其中的任何一个元素,是因为列表是一下子将所有的数据都装在在内存中, 而且是一块连续存在的空间。当数量比较小时,实现比较容易;当数据量大时,会非常...
阅读全文
摘要:异常处理 什么是异常 当遇到错误后,会引发异常。如果异常对象没有处理异常,或未步捕捉异常,程序就会终止执行,并向用户返回异常信息。通常异常信息会告知错误的代码行以及其他有助于定位 错误的信息,以便程序员可以快速定位有错误的代码 主动抛出异常 raise Exception 实例: raise Exception("这是自己主动抛出的一个异常") 捕捉异常 如果异常未捕捉,...
阅读全文
摘要:测试 使用Flak8检测python代码的错误和警告 pip install flake8 flake8 test.py 实例: [root@test3 ~]# flake8 test.py test.py:4:1: E302 expected 2 blank lines, found 1 test.py:9:1: E302 expected 2 blank lines, found...
阅读全文

浙公网安备 33010602011771号