03 2020 档案
-
py18_05:Django之views视图
摘要:路由对应关系用到的模块 path,url,re_path三个模块。 其中path是绝对匹配,re_path可以用正则,url既可以正则,也可以带参数 阅读全文
-
py18_04:使用Django的管理后台的基本设置
摘要:修改setting.py的配置 第一步: vim ./python/setting.py 第二步:创建管理员帐号 py manage.py createsuperuser 访问地址:http://192.168.43.233/admin/ 第三步:注册类 # 第四部,自定义显示数据。 重写类的__s 阅读全文
-
py18_03:ORM之一对多表关系
摘要:from django.db import models # 一类 class BookInfo(models.Model): # 每个表必须继承models.Model # 图书类 b_title = models.CharField(max_length=32) pub_date = model 阅读全文
-
py18_03:ORM的基本操作
摘要:在shell里直接操作: python3 manage.py shell 第一步:导包 from booktest.models import BookInfo # booktest是app名,继承models文件。BookInfo是models下的一个类。 第二步:生成表(类)对象 b = Boo 阅读全文
-
py18_03:ORM之配置mysq数据库
摘要:setting配置修改引擎: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 引擎 'NAME': 'yeyu_db', # 数据库名 'USER': 'yeyu', # 用户名 'PASSWORD': '**** 阅读全文
-
py18_03:Django之ORM的常用字段
摘要:ORM的关系对应图,Django内嵌了ORM,通过操作Model这个模块,对数据库的操作。 models的字段,具体详情,可以在官网上查找 官网地址:https://docs.djangoproject.com/zh-hans/2.1/ # Create your models here. clas 阅读全文
-
py18_03:安装django,创建目录。完成准备开发的基本操作
摘要:1. 安装 pip3 install django==1.8.2 # 不加版本号,默认会安装最新版 2. 创建项目 django-admin startproject test1 # 创建了一个test1的项目 3. 创建应用 python3 manage.py startapp app01 创建应 阅读全文
-
py18_02:安装python虚拟环境
摘要:安装py的虚拟环境: pip3 install virtualenvwrapper pip3 install virtualenv 修改环境变量 vim /etc/profile (添加) # 声明python虚拟环境变量,直接复制下面三行。 export WORKON_HOME=$HOME/.vi 阅读全文
-
py18_01:了解MVC工作流程,并安装pip3和python3命令
摘要:MVC工作流程图 Django是遵循MVC的一个框架,简称MVT。本质上还是MVC。 # 安装扩展包 sudo yum install epel-release -y sudo yum install https://centos7.iuscommunity.org/ius-release.rpm 阅读全文
-
py04_06:生成器
摘要:生成器的工作原理 如果再次调用函数时。代码是从yield的位置继续往下执行。而不是从函数本身。 # 生成器一个特殊的迭代器,他没有__iter__ , __next__两个方法,但通过yield,同样实现了迭代器的功能,所以说生成器是一个特殊的迭代器 def create_num(all_count 阅读全文
-
py04_05:迭代器
摘要:迭代器:只要是能被for循环的对象,且数据以公式表达。而不是列表,集合等。 迭代器的工作原理: import time # 利用斐波那契的原理写一个迭代器,斐波那契的公式:a, b = b ,a+b (第一,二个数:0和1) class Fibonacci(object): def __init__ 阅读全文
-
py07_06:协程
摘要:pass 利用greenlet完成yield的功能,实现自动切换。(yield的工作原理请参考:https://www.cnblogs.com/yeyu1314/p/12590743.html) from greenlet import greenlet import gevent def task 阅读全文
-
py08_03:http之了解
摘要:利用socket模拟http的工作流程。 import socket def server_client(new_socket): """为这个客户端返回数""" # 1. 接收浏览器发送过来的请求,即http请求 # GET / HTTP/1.1 # ... request = new_socke 阅读全文
-
py09_01:正则表达式
摘要:单个匹配 组合匹配,注意:正面的组合单独是没有意义的。必须和字符串等组合在一起。 加了$,要么匹配成功,要么失败。而不像上图一样,匹配的不正确,但是结果却成功了 下面是两个小案例 import re # 判断变量名是否符合规则 name = ['asdsf', '%asdf', '__!', 'a' 阅读全文
-
py07_05:多进程之pool(进程池)
摘要:概念:多个进程存储在pool里,就形成了进程池。 作用: 由于创建和消毁进程是需要大量的资源维持的,所以我们可以把一些进程放到pool里。 from multiprocessing import Pool import os import time import random def worker( 阅读全文
-
py07_04:多进程之Queue队列
摘要:原理与解释待补 import multiprocessing def download_from_web(q): # 模拟数据下载 data = [11, 22, 33, 44] # 向队列中写入数据 for temp in data: q.put(temp) print('下载完成,已经存到队列中 阅读全文
-
py07_03:多进程
摘要:进程,我们可以理解为打开一个程序 ,比如,打开两个QQ,就是两个进程。 python中,进程模块,就相当于复制了一份代码,然后执行代码。进程会相当消耗内存 多进程与多线程的用法完全一样。 阅读全文
-
py07_03:互斥锁解决资源竞争问题
摘要:import threading import time init_total = 0 lock = threading.Lock() def test_01(): global init_total lock.acquire() for i in range(100000): init_total 阅读全文
-
py06_10:class之__new__内置方法
摘要:工作原理: 1. 分配内存空间 2. 返回内存地址 重写__new__方法 class Test(object): def __new__(cls, *args, **kwargs): # 1. 创建对象时,new方法会自动调用 print('创建对象,分配内存空间') # 2. 为对象分配空间 r 阅读全文
-
py06_09:class之综合小案例
摘要:class Game(object): top_score = 0 # 类属性 def __init__(self, name): self.name = name # 实例属性 @staticmethod def show_help(): # 静态方法 print('帮助信息:。。。') @cla 阅读全文
-
py06_08-3:class之静态方法
摘要: 阅读全文
-
py06_08-2:类方法
摘要:class Person(object): count = 0 @classmethod def show_people_count(cls): print('显示创建的人数:%s' % cls.count) def __init__(self, name): self.name = name Pe 阅读全文
-
py06_08-1:类属性
摘要:class Tool(object): count = 0 def __init__(self, name): self.name = name Tool.count += 1 # 定义一个数量的属性,我们就可以通过count知道创建的对象的数量 a = Tool('斧头') b = Tool('弓 阅读全文
-
py06_07:class之多态
摘要:class Dog(object): def __init__(self, name): self.name = name def game(self): print('%s 蹦蹦跳跳的玩耍' % self.name) class XiaoTiaoDog(Dog): def game(self): 阅读全文
-
py07_02:多线程
摘要:概念: 并行:指每个cpu独立执行一个任务 并发:指一个或多个cpu同时轮询执行许多的任务 线程的使用标准 注意:传参args后面必须是元组 import time import threading def sing(): for i in range(5): time.sleep(0.5) pri 阅读全文
-
py06_07:class之继承
摘要:class Animal: def __init__(self,name): self.name = name def eat(self): print('吃') def drink(self): print('喝') def run(self): print('跑') def sleep(self 阅读全文
-
py06_06:私有属性与私有方法
摘要:class Woman: def __init__(self, name, age): self.name = name self.__age = age # 私有属性 def __secret(self): # 私有方法 print('我的年龄是秘密') class Woman: def __in 阅读全文
-
py06_05-3:案例之士兵突击
摘要:class Gun: def __init__(self, model): self.model = model self.bullet_count = 0 def add_bullet(self, count): self.bullet_count += count def shoot(self) 阅读全文
-
py06_05-1:案例之小明爱跑步
摘要:class Person: def __init__(self,name,weight): self.name = name self.weight = weight def __str__(self): return '我叫%s,我的体重是%.2f' % (self.name, self.weig 阅读全文
-
py06_04:__str__内置函数
摘要:对比下面的两张图,你就会了解__str__内置函数的作用了 阅读全文
-
py06_03:__del__方法之了解
摘要:del与init相反 class Cat: # 定义累 ''' __init__ : 方法是专门用来定义一个类,具有哪些属性的方法。 ''' def __init__(self, name, age): print('这是一个初始化的方法') self.name = name self.age = 阅读全文
-
py06_02:类的self讲解
摘要:self:哪一个对象调用,self就是代表哪一个的对象的内存地址。如上图。在eat方法打印self,与print的内存地址是一样的。 理解初始化方法 class Cat: # 定义累 ''' __init__ : 方法是专门用来定义一个类,具有哪些属性的方法。 ''' def __init__(se 阅读全文
-
py07_01:异常处理
摘要:异常处理的基本语言 try: number = int(input('请输入一个整数: ')) except: print('请输入一个正确的整数') print('-' * 50) 处理多个异常 try: number = int(input('请输入一个整数: ')) results = 8/n 阅读全文
-
py08_02:socket之tcp
摘要:import socket def main(): # 1. 创建套接字 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2. 绑定本地信息 tcp_server_socket.bind(('', 789 阅读全文
-
py08_01:socker之udp
摘要:socket工作的流程(详情请看下一篇) 1。 import 2。 生成对象 3。 操作 socket之udp小案例 import socket import threading # 接收数据 def recv_msg(udp_socket): while True: recv_data = udp 阅读全文
-
py00_04:设置pycharm的解释器版本
摘要:待上传 阅读全文
-
py00_03:pycharm的基本设置
摘要:1. pycharm恢复到初始设置 删除创建项目的文件 阅读全文
-
py00_02:python之了解运行程序的三种方法
摘要:1. 利用python的原生解释器 python txt.py 2. 利用idle,交互式的执行(linux,用python直接进入) exit()或者ctrl +d 3. 利用开发工具,pycharm或vscode等运行 阅读全文
-
py06_01:了解类与对象
摘要:了解类与对象的关系 class Cat: # 定义累 def eat(self): print('小猫爱吃鱼') def drink(self): print('喝水') # 生成一个tom的对象,然后这个对象调用方法 tom = Cat() tom.eat() tom.drink() 额外知识小科 阅读全文
-
py04_04:函数之装饰器
摘要:用一个简单的例子,了解一下装饰器 def decorater(func): def moban(*args, **kwargs): print('添加功能,func()代码的是被装饰的函数。') func() return moban 装饰器模板 阅读全文
-
py21_01:django之session
摘要:session的方法 request.session['k1'] # 获取session的值 request.session.get('k1', None) # 获取值,没有则默认为None request.session['k1'] = 123 # 设置值 request.session.setd 阅读全文
-
py05_05:json与pickle模块
摘要:json的作用:用于字符串和python数据类型进行转换 pickle作用: 用于py的特有类型和python数据类型进行转换 json与pickle同样有四个封装的方法 dumps,dump,loads,load 阅读全文
-
py05_03:os模块
摘要:import os os.getcwd() # 获取当前工作目录,即py的根目录 os.chdir() # os.curdir # 返回当前目录 (.) os.pardir # 返回低级目录 (..) os.makedirs() # 递归生成目录 os.removedirs() # 递归删除目录,若 阅读全文
-
py05_04:sys模块
摘要:import sys sys.argv # 传参 sys.exit() # 能出程序,返回状态 sys.version # 获取python解释程序的版本信息 sys.maxint # 最大的int值 sys.path # 环境变量 sys.platfrom # 操作系统的平台名称 sys.stdo 阅读全文
-
py05_03:random模块
摘要:random模块的使用 夜 雨, [07.03.20 21:19]import random random.random() # 0-1的浮点数random.uniform(1,10) # 指定区间的随机数random.randint(1,3) # 随机整数(前后都可以)random.randran 阅读全文
-
py05_02:time与datetime模块
摘要:1. 时间格式(世界标准时间utc,夏令时dst,本地时间local) 1. 自定义化格式 YYYY-MM-DD HH:mm:ss 2. 时间戳 1970.1.1开始计算,转为秒3. 元组 年月日,时分秒,周的第几天,年的第几天,是否夏令时 time.struct_time(tm_year=2020 阅读全文
-
py05_01:模块之了解
摘要:模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。 自定义模块(如定义了test.py) import test 使用name变量:test.name 使用say方法:test.say() 阅读全文
-
py04_03:函数之递归函数
摘要:递归函数的定义:在函数内部,函数自身调用自己的return值,就叫做递归函数 要求:1. 必须有一个明确的结束条件,且return 调用函数本身 2. 每次相对减少,不可能增加,否则永远不能结束,则出错 3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据 阅读全文
-
py04_02:函数之局部变量与作用域
摘要:局部变量,如下图,函数里修改的name只在函数生效了。 对列表,字典等局部修改后的作用域 阅读全文
-
py04_02:函数之参数详解
摘要:函数体的基本格式 def 函数名(参数列表): 函数体 return xx 函数的参数 1. 无参 2. 普通参数 3. 默认参数 4. 参数组 阅读全文
-
py03_04:内置函数
摘要:菜鸟教程参考地址:https://www.runoob.com/python3/python3-built-in-functions.html abs() # 取绝对值,绝对路径 all() # 判断可迭代对象(列表,集合等)的值是不是全部为ture any() # 判断可迭代对象,任意一个数据为t 阅读全文
-
py04_01:函数之了解
摘要:Python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。 定义一个函数 def 函数名(参数列表): '文档描述' 函数体 return XX 函数式编程与类的过程的区别 # 函数 def func1(): print(' 阅读全文
-
py21_01:基于cooking实现用户登陆
摘要:# python之cookie # 作用:登陆页面的控制,类似于密钥对登陆。 from django.shortcuts import render, redirect user_info = { 'root1': {'pwd': '123'}, 'root2': {'pwd': '234'} } 阅读全文
-
py01_99:利用循环_自定义web分页
摘要:定义一个没有分布的web页面(如下代码)django的url 第一步:利用django的url urlpatterns = [ path('user_list/', views.user_list), ]第二步:定义跳转到web的函数 # 用一个列表模拟数据库的数据 # 用一个列表模拟数据库的数据L 阅读全文
-
py03_03:字符集的转换
摘要:首先了解一下支持我国的字符集的发展历史 从最开始的ASCII >gb2312 >gbk >unicode >utf-8 ASCII:不支持中文 gb2312:支持中文2000多个 gbk:支持中文两万多个 unicorn:万国编码 utf-8:包含符合各国语言的字符集 字符集之间的转换,如下图所示 阅读全文
-
11
摘要:今天 阅读全文
-
py03_02:文件流(修改文件小案例)
只有注册用户登录后才能阅读该文。
-
py03_01:文件流
摘要:文件流 1.文件流的本质 文件流的操作,一般都会有三个步骤 1. 打开文件 2. 操作文件 3. 关闭文件 f = open('test', encoding='utf8',mode='r') print(f.read())f.close() # 文件流的基本参数 # 1. file: 打开一个文件 阅读全文
-
py02_09:集合
摘要:set(集合)的关系类型 list1 = [1, 2, 3, 4, 5]list2 = [4, 5, 6, 7]a = set(list1)b = set(list2)print(' 并集 ')print(a | b)print(a.union(b))print(' 交集 ')print(a & b 阅读全文