django-url路由系统
URL路由系统是什么
简而言之,路由系统就是URL路径和视图函数的一个对应关系,也可以称为转发器。
URL配置
URL路由系统格式:
# devops/urls.pyurlpatterns = [ path(regex, view, kwargs=None, name=None)]
urlpatterns:一个列表,每一个path()函数是一个元素,对应一个视图
参数:
regex:一个字符串或者正则表达式,匹配URL
view:对应一个函数视图或者类视图(as_view()的结果),必须返回一个HttpResponse对象,Django将这个 对象转换成一个HTTP响应
kwargs:可选,字典形式数据传递给对应视图
name:可选,URL名称
URL路由分发
URL路由分发好处:urls配置解耦,方便管理
示例:
# devops/urls.pyfrom myapp import views as myapp_viewsurlpatterns = [ path('index', views.index), pat ...
django基本使用
Django 是什么
Django是Python的一个主流Web框架,提供一站式解决方案,开发成本低,内建ORM、数据管理后台、登录 认证、表单、RESTAPI等功能,适合开发中大型项目。
其他Web框架:
Flask(轻量级)
Tornado(异步)
官方文档:https://docs.djangoproject.com/zh-hans
安装Django
安装Django:
pip install django==3.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
创建项目、创建应用
1、创建项目 django-admin startproject devops 2、创建应用 python manage.py startapp myapp 3、运行项目 python manage.py runserver 0.0.0.0:8888
牛刀小试:第一个页面、第二个页面
1、添加URL路由
# devops/urls.py from django.contrib import admin from django.urls impo ...
python数据库编程
pymysql模块
pymysql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql 支持python3.x而后者不支持3.x版本。
pymysql是第三方模块,需要单独安装,首选通过pip安装PyMySQL:
# pip3 install pymysql
基本使用
先创建一个test库,再创建一张user表: create database test; use test; create table user( id int primary key not null auto_increment, username varchar(50) not null, password varchar(50) not null );
import pymysql conn = pymysql.connect( host='192.168.1.11', port=3306, user='root', password='123456', db=' ...
python正则表达式
什么是正则表达式
正则表达式是对字符串操作的一种逻辑方式,就是用实现定义好的一些特定字符及这些特定字符的组 合,组成一个规则字符串,这个规则字符串就是表达对字符串的逻辑,给定一个正则表达式和另一个 字符串,通过正则表达式从字符串我们想要的部分。
re 标准库
Python正则表达式主要由re标准库提供,拥有了基本所有的表达式。
语法:re.compile(pattern, flags=0)
pattern 指的是正则表达式。flags是标志位的修饰符,用于控制表达式匹配模式
示例1:
import res = "this is test string"pattern = re.compile('this')result = pattern.match(s)print(result.group()) #匹配成功后,result对象会增加一个group()方法,可以用它来获取匹配结果
语法:re.match(pattern, string, flags=0)
示例2:
result = re.match('this', s) ...
python常用标准库
常用标准库
官方文档标准库列表:
https://docs.python.org/zh-cn/3.8/library/index.html
标准库:os
os库主要对目标和文件操作。
os.path类用于获取文件属性。
标准库:sys
sys库用于与Python解释器交互。
标准库:platform
platform库用于获取操作系统详细信息。
标准库:glob
glob库用于文件查找,支持通配符(*、?、[])
示例1:查找目录中所有以.sh为后缀的文件: >>> glob.glob('/home/user/*.sh') ['/home/user/b.sh', '/home/user/a.sh', '/home/user/sum.sh'] 示例2:查找目录中出现单个字符并以.sh为后缀的文件: >>> glob.glob('/home/user/?.sh') ['/home/user/b.sh', '/home ...
python自定义模块及导入方法
自定义模块
一个较大的程序一般应分为若干个程序块,若个程序块称为模块,每个模块用来实现一部分特定的功能。 这样做的目的是为了将代码有组织的存放在一起,方便管理和重复使用。
定义一个模块:
# vi mym.py name = "amei" def count(a, b): result = a * b return f"{a}与{b}的乘积是: {result}"
使用模块的方法:
import <模块名称>
from <模块名称> import <方法名>
from <模块名称> as <别名>
注:模块名称即py文件名称
name==“main” 作用
mym.py作为一个模块,我们希望保留末尾测试代码,即上面调用函数 和类,但也不希望再导入模块的时候执行。该怎么办呢?
可以利用Python文件的一个内置属性__name__实现,如果直接运行 Python文件,__name__的值是"mian&qu ...
python异常处理
什么是异常
什么是异常?
顾名思义,异常就是程序因为某种原因无法正常工作了,比如缩进错误、缺少软件包、环境 错误、连接超时等都会引发异常。 一个健壮的程序应该把所能预知的异常都应做相应的处理,保障程序长期运行。
捕获异常语法
语法: try: <代码块> except [异常类型]: <发生异常时执行的代码块>
如果在执行 try 块里的业务逻辑代码时出现异常,系统会自动生成一个异常对象,该异常对象被提交给 Python 解释器,这个过程被称为引发 异常。
当 Python 解释器收到异常对象时,会寻找能处理该异常对象的 except 块,如果找到合适的 except 块,则把该异常对象交给该 except 块处理, 这个过程被称为捕获异常。如果 Python 解释器找不到捕获异常的 except 块,则运行时环境终止,Python 解释器也将退出。
异常类型
异常处理
示例:打印一个没有定义的变量
try: print(name) except NameError: print("发生名称错误时,执行的代码" ...
python类-面向对象
什么是面向对象编程?
面向过程编程:是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程。
面向对象编程:是一种计算机编程架构,以对象为中心的编程思想,对现实世界理解和抽象的方法。
类、对象它们之间的关系:
类:类是对现实生活中一类具有共同特征的事物的抽象描述。例如电脑类、空调类、人类
对象:类的实体,实际存在的事物,例如电脑类的“主机”、“显示器”
类与对象的关系:类是由对象来定,这个过程叫做抽象化。用类创建对象,这个过程称为实例化
类的其他特点:
封装:把相同对象的功能(函数)、属性(变量)组合在一起
方法:对象的功能(例如电脑能上网、看片),实际在类里面就是函数,称为成员函数,也可以称为方法
属性:对象的特征(例如电脑都有主机、显示器)
实例化:用类创建对象,这个对象具体是什么东西,例如你用的电脑、我这个人
类的定义
使用class关键字定义类: class ClassName(): def funcName(self): pass
电脑(类): 特征(属性):主机,显示器,键盘,鼠标… ...
常用内建函数
内建函数
Python解释器内置了很多函数,你可以直接使用它们。
在前面学习过的内建函数有:print()、len()、open()、range()
参考文档:https://docs.python.org/zh-cn/3.11/library/functions.html
高阶函数
内建高阶函数:map()、filter()
高阶函数至少满足两个任意的一个条件:
能接收一个或多个函数作为输入
输出一个函数
高阶函数:map()
map() 函数:根据提供的函数处理序列中的元素,处理完后返回一个迭代器对象。
语法:map(function, iterable, …)
示例:
num = range(1,11) def handle(n): return n * 2 result = map(handle, num)print(list(result)) 或者使用匿名函数: result = map(lambda n:n * 2, num) print(list(result))
高阶函数:filter()
filter()函数:用于过滤序列,过滤掉不符合条件的元素 ...
python函数
函数定义与调用
函数:是指一段可以直接被另一段程序或代码引用的程序或代码。 在编写代码时,常将一些常用的功能模块编写成函数,放在函数库中供公共使用,可 减少重复编写程序段和简化代码结构。
语法: def 函数名称(参数1, 参数2, ...): <代码块> return <表达式>
示例:
def hello(): print("Hello World!") hello() # 调用函数
函数参数
函数参数:接收参数
示例:求和函数
def f(a, b): return a + b print(f(1,2)) # 按参数位置赋值 print(f(b=2,a=1)) # 按对应关系赋值
示例:生成序列列表
def seq(n): result = [] x = 0 while x < n: result.append(x) x += 1 return result print(seq(9))
函数参数:参数默认值
参数默认值:预先给参数定义默 ...