python继承

python(十五):Django之HttpRequest

匿名 (未验证) 提交于 2019-12-02 22:11:45
  当一个请求连接进来时,django会创建一个HttpRequest对象来封装和保存所有请求相关的信息,并且会根据请求路由载入匹配的视图函数。每个请求的视图函数都会返回一个HttpResponse。   HttpRequest和HttpResponse可以从django.http中导入。   1、HttpRequest类 HttpRequest . scheme 请求协议(http或者https) HttpRequest. body 以字节的方式返回请求体内容;可以通过HttpRequest.POST获取处理后的key和value,也可以通过HttpRequest.read()格式化 HttpRequest. path 返回请求的完整路径,不包括协议和域名 HttpRequest. GET GET请求参数,返回一个queryDict对象 HttpRequest. POST 获取表单提交的数据,如果是通过POST请求提交的其它非表单数据,可以使用HttpRequest.Body获取;使用时可以通过if request.method == "PSOT"来进行预判断 HttpRequest .method 返回请求方式 HttpRequest. environ 返回一个字典,包含所有django运行的环境信息 HttpRequest. content_type 文件格式

Python 异常处理

匿名 (未验证) 提交于 2019-12-02 22:11:45
异常概念 Python在执行代码之前,会进行语法检查,如果语法出错了,会抛出语法错误(SyntaxError)。 Python程序运行期间检测到的错误被称为异常。 内置异常: BaseException:所有异常的基类 错误类异常(发生之后,如果不捕获,将会导致程序终止):   SystemExit:解释器请求退出   KeyboardInterrupt:用户中断执行(通常是输入^C)   Exception:常规错误的基类   StopIteration:迭代器没有更多的值   ZeroDivisionError:除(或取模)零 (所有数据类型)   AssertionError:断言语句失败   AttributeError:对象没有这个属性   NotImplementedError:尚未实现的方法   SyntaxError:Python 语法错误 警告类异常(打印出警告信息,使用warnings模块调用,而不是使用raise抛出,不会中断程序的正常执行): Warning:警告的基类 DeprecationWarning:关于被弃用的特征的警告  import warnings    warnings.warn("新的版本将会弃用", DeprecationWarning) UserWarning:用户代码生成的警告    import warnings  

python 类

匿名 (未验证) 提交于 2019-12-02 22:11:45
1 class Human: 2 total_count = 0 # 类变量 3 def __init__ (self, name): 4 print (name, ‘ 对象被创建 ‘ ) 5 6 print (Human.total_count) # 类直接访问类变量 0 7 h1 = Human( ‘ 小张 ‘ ) 8 print (h1.total_count) # 0 用此类的实例可以访问类变量 9 h1.total_count = 100 # 为对象添加实例变量 10 print (h1.total_count) # 100, 优先访问对象的实例变量 11 print (Human.total_count) # 0, 访问类的类变量 12 print (h1. __class__ .total_count) # 0 通过此类的实例对象的__class__属性来访问类变量 类变量的访问 1 class Human: 2 # 以下列表限制此类的对象只能有‘name‘ 和‘age‘ 属性 3 __slots__ = [ ‘ name ‘ , ‘ age ‘ ] 4 5 def __init__ (self, name, age): 6 self.name, self.age = name, age 7 8 9 h1 = Human( " Tarena " , 15 ) 10

python继承

时光怂恿深爱的人放手 提交于 2019-12-02 21:50:16
一、单继承 子类调用父类的一个方法,可以用super(): class A(object): def pp(self): print('pp A') class B(A): def pp(self): super().pp() print("pp B") b = B() b.pp() #结果: pp A pp B super()常用的方法是在__init__()方法中确保父类被正确的初始化了: super(cls,inst).__init__() #cls,init 可以省略 class A(object): def __init__(self): self.x = 1 class B(A): def __init__(self): super(B,self).__init__() self.x = self.x +1 print(self.x) b = B() #结果 2 也可以直接调用父类的一个方法 : A.__init__(self) class A(object): def __init__(self): self.x = 1 class B(A): def __init__(self): A.__init__(self) self.x = self.x +1 print(self.x) b = B() #结果 2 二、多继承 super()

Python 变量

眉间皱痕 提交于 2019-12-02 21:49:26
版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(String) Python 运算符 Python 列表(list) Python 元组(Tuple) Python 集合(Set) Python 字典(Dictionary) Python If … Else Python While 循环 Python For 循环 Python 函数 Python Lambda Python 类与对象 Python 继承 Python 迭代器(Iterator) Python 模块 Python 日期(Datetime) Python JSON Python 正则表达式(RegEx) Python PIP包管理器 Python 异常处理(Try…Except) Python 打开文件(File Open) Python 读文件 Python 写文件 Python 删除文件与文件夹 创建变量 与某些编程语言不同,Python无需声明变量。 当你第一次为变量赋值时,就会自动创建一个变量。 示例: a = 3 b = "Kevin" print(a) print(b) 变量不需要声明类型。变量甚至可以在赋值后更改类型。 a = 4 # a 是 int类型 a

Python继承、多继承、魔术方法

て烟熏妆下的殇ゞ 提交于 2019-12-02 19:04:58
继承和多继承的概念和使用 super的用法 __str__   __repr__   __call__ 多继承方法解析顺序和Mix-in开发模式 魔术方法原理和作用 继承 定义类的时候,在类名后面的括号里填继承的类的类名 顶级基类object __bases__:查看类的直接父类 继承搜索 访问类的属性或方法 --> 如果找不到,转到其父类中查找 --> 如果再找不到,转到其父类的父类中查找 多继承 当继承多个父类时,如果父类中有相同的方法,那么子类会优先使用最先被继承的方法 重写 当子类继承父类之后,如果子类不想使用父类的方法,可以通过重写来覆盖父类的方法 super用法 重写父类方法之后,又需要使用父类的方法 方法一:父类名.方法名 方法二:super 函数可以调用父类的方法 类在生成时会自动生成方法解析顺序 可以通过调用类的__mro__属性或者mro方法来查看类的继承关系 object是所有类的父类 Mix - in 设计模式 由多个模块组成一个整体 最好,多继承就一层,且是最后一层 魔术方法 一种特殊的方法,前后有两个下划线 特点:不需要人工调用,在特定的时候自动执行 魔术方法之运算方法 不同运算符调用不同的魔术方法(了解即可) __add__ # x+y    __sub__ # x-y   __mul__ # x*y   __mod__ # x%y __iadd__

Python入门基础学习(重点一)

北战南征 提交于 2019-12-02 18:50:51
Python基础学习笔记(一) 编译性语言与解释性语言: 编译性语言:读完代码再执行,一般会生成一个文件,如C语言会生成一个.h的文件给计算机执行 如:C,C++,C#,Java,Go 解释性语言:读一句执行一句,不生成文件 如:Python,Javascript,ruby,PHP Python环境的安装: 1.安装python解释器 (即常说的安装python)推荐py3,2020年py2淘汰   //灵魂 python解释器安装地址: www.python.org (Downloads - Window/mac/linux) 安装过程可以勾选add python 3.x to Path(后续就不需要环境设置) 解释器环境设置: 右键我的电脑,属性,高级系统设置,点击环境变量(用户变量为当前用户,系统为所有用户,建议设置系统用户),找到系统变量里面的Path,编辑它,将python解释器安装的位置,再加个分号(window7) 2.安装IDE(pycharm)    //躯壳 pycharm安装路径: www.jetbrains.com/pycharm/download/#section=windows 推荐下载社区版(免费),没有的同学可以用IDLE运行 打开,创建新项目,设置创建项目的路径,选择existing interpreter(选择python.exe 解释器的位置)

自定义URL(PATH)转换器笔记

大憨熊 提交于 2019-12-02 18:43:21
自定义URL(PATH)转换器笔记: 需求: 实现一个获取文章列表的demo,用户可以根据 /articles/文章分类/ 的方式来获取文章。其中文章分类采用的是 分类1+分类2+分类3... 的方式拼接的,并且如果只有一个分类,那就不需要加号。示例如下: # 1. 第一种:获取python分类下的文章 /articles/python/ # 2. 第二种:获取python和django分类下的文章 /articles/python+django/ # 3. 第三种:获取python和django和flask分类下的文章 /articles/python+django+flask/ 以此类推... 在“文章分类”参数传到视图函数之前要把这些分类分开来存储到列表中。 比如参数是 python+django ,那么传到视图函数的时候就要变成 ['python','django'] 。 以后在使用reverse反转的时候,限制传递“文章分类”的参数应该是一个列表,并且要将这个列表变成 python+django 的形式。 自定义URL转换器: 之前已经学到过一些django内置的url转换器,包括有int、uuid等。有时候这些内置的url转换器并不能满足我们的需求,因此django给我们提供了一个接口可以让我们自己定义自己的url转换器。 自定义url转换器按照以下五个步骤来走就可以了

python中的继承

[亡魂溺海] 提交于 2019-12-02 18:42:15
一、单继承 子类调用父类的一个方法,可以用super(): class A(object): def pp(self): print('pp A') class B(A): def pp(self): super().pp() print("pp B") b = B()b.pp()#结果: pp A pp B super()常用的方法是在__init__()方法中确保父类被正确的初始化了: super(cls,inst).__init__() #cls,init 可以省略 class A(object): def __init__(self): self.x = 1 class B(A): def __init__(self): super(B,self).__init__() self.x = self.x +1 print(self.x) b = B()#结果2 也可以直接调用父类的一个方法 : A.__init__(self) class A(object): def __init__(self): self.x = 1 class B(A): def __init__(self): A.__init__(self) self.x = self.x +1 print(self.x) b = B()#结果2 二、多继承 来源: https://www.cnblogs.com