
Python
CODE_Lph
这个作者很懒,什么都没留下…
展开
-
Django之auth模块
Django之auth模块1.auth模块介绍需要使用auth模块需要导入from django.contrib import authauth模块用作django的用户认证,具有非常简便高效的用法,通常情况下的用户认证需要借助于django的session(cookie),用户登入后给用户设置session值,从而用户的访问带着设置的session值来访,以此来保证用户的会话,用法如下:...原创 2019-08-31 16:03:42 · 217 阅读 · 0 评论 -
Ajax提交数据
背景:基于Django项目的Ajax向后端提交数据,向后端提交数据可以采用form表单的形式提交,但是form表单提交之后页面会刷新,如果是提交少量数据通常使用模态框的形式进行提交,而刷新页面会导致html页面重新加载,从而退出模态框,要实现在校验提交的数据不合法的场景下,需要保留模态框页面提示错误重新输入和重新提交,因此采用ajax向后端提交即可实现需求后端页面处理函数:# 班级展...原创 2019-05-07 00:08:56 · 275 阅读 · 0 评论 -
Python之ORM框架sqlachemy
from sqlalchemy import create_enginefrom sqlalchemy import Column,String,Integer,ForeignKeyfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmaker,relationsh...原创 2019-04-29 12:41:57 · 307 阅读 · 1 评论 -
Python之pymysql操作MySQL数据库
# import pymysql# import random# import time# mysql = pymysql.connect(# host='192.168.1.124',# user='root',# password='123456',# database='task1'# )# mail_lst = ['@163.com','...原创 2019-04-28 20:31:45 · 114 阅读 · 0 评论 -
django之安装与简单起一个web服务
Django 安装pip install Django==1.11 # 安装django1.11版本命令行创建django项目django-admin startproject testpro # testpro是项目名称 命令行创建app cd testprodjango-admin startapp app01 # app01是app名称 将新建好的...原创 2019-05-02 00:02:08 · 222 阅读 · 0 评论 -
Python之进程池与回调函数
# 进程池相比于Process效率高,因为创建进程和开启进程需要时间# 进程数并非越多越好,操作系统调度进程需要耗时# 进程池与Process效率比对# Process 50个进程效率测试# from multiprocessing import Process# from multiprocessing import Queue# import time## def func...原创 2019-04-14 17:20:35 · 527 阅读 · 0 评论 -
Python之进程通信管道,与数据共享
# 进程通信--管道:默认管道是全双工通道# from multiprocessing import Process# from multiprocessing import Pipe## def func(conn1,conn2):# conn1.close()# while True:# try:# ret = conn...原创 2019-04-14 13:57:24 · 221 阅读 · 0 评论 -
Python之异步IO模型实现socket并发
服务端:import socketsk = socket.socket()addr = ('127.0.0.1',8090)sk.bind(addr)sk.listen()sk.setblocking(False) # 设置非阻塞模式,accept,recv等方法均不阻塞,而是抛出异常conn_lst = [] # 建立一个列表存储接收到的连接del_lst = [] # 建...原创 2019-04-21 18:16:40 · 2786 阅读 · 0 评论 -
Python之协程
# 协程的概念:单个线程内遇到IO进行切换,提高CPU利用率# 协程的任务切换核心模块--greenlet# import greenlet# def func1():# print('func1 start...')# g2.switch() # 切换到g2执行# print('func1 end...')# g2.switch() # 切换到g2...原创 2019-04-21 16:46:14 · 152 阅读 · 0 评论 -
Python之进程信号量,事件,进程间通信与生产者消费者模型
# 进程锁的作用是同一时间只允许一个进程访问被锁的代码# 信号量的作用是统一时间允许指定个数进程访问代码# from multiprocessing import Process# import time# import random## def func(i):# print("%s开始执行代码"%(i),time.time())# time.sleep(ran...原创 2019-04-13 17:59:12 · 598 阅读 · 0 评论 -
Python之多进程一
# multiprocessing模块的Process类# from multiprocessing import Process# import time,os# def func(n):# print("子进程" + str(n),os.getpid()) # os.getpid()获取当前进程号# time.sleep(1)# 不使用多进程跑10个任务# s...原创 2019-04-09 23:55:25 · 120 阅读 · 0 评论 -
基于Ajax的单表增删该查
背景:模态框模式像后端提交数据,区别于form表单提交数据页面默认刷新后端处理请求函数:from django.shortcuts import render,HttpResponse# Create your views here.import pymysqlimport jsondef class_list(request): conn = pymysql....原创 2019-05-07 23:41:14 · 228 阅读 · 0 评论 -
django简单项目
1.建立简单后台管理项目(学员管理系统--基于django母版)2.包含三个子项项目(班级管理,学生管理,老师管理)3.子项目增删改查(基于pymysql原生sql)4.基于cookie的认证(基于装饰器)后台管理函数:from django.shortcuts import render,HttpResponse,redirect# Create your views ...原创 2019-05-26 14:16:40 · 265 阅读 · 0 评论 -
Django之form组件
'''form 组件两大功能:1.对用户提交数据进行验证2.生成HTML标签'''以用户注册为例:1.定义一张用户信息表from django.db import models# Create your models here.# 创建一张用户信息表class UserInfo(models.Model): # 数据库表有自带规则,如果用户提交数据不规范,则...原创 2019-08-17 18:14:22 · 203 阅读 · 0 评论 -
Django中间件
django中间件1.中间件定义:中间件是一个类,定义方式如下: from django.utils.deprecation import MiddlewareMixin class M1(MiddlewareMixin): ... class M2(MiddlewareMixin): ... 定义完后需要注册才能使用:(settings.py中) MID...原创 2019-08-10 11:53:52 · 117 阅读 · 0 评论 -
django自关联
基于MySQL,django默认的sqlite没有外键约束效果自关联 - - 基于Forenkey,创建model类如下:# 定义一个评论类--基于Forenkey的自关联class Appreciation(models.Model): newId = models.IntegerField() # 文章的ID content = models.CharField(...原创 2019-08-04 21:14:56 · 573 阅读 · 0 评论 -
Django之多对多操作
多对多三种方式from django.db import models# Create your models here.# 多对多之纯自定以表# class A(models.Model):# a_filed = models.CharField(max_length=32)## class B(models.Model):# b_filed = mode...原创 2019-07-30 22:38:54 · 1273 阅读 · 0 评论 -
django--model操作
django-model操作1.基本增删查改 1.1 查 # all方法返回的是QuerySet对象中元素是对象 ulist1 = models.UserInfo.objects.all() for u in ulist1: print(u.uid,u.name) # values方法返回的是QuerySet对象中元素是字典 ulist...原创 2019-06-30 21:00:35 · 201 阅读 · 0 评论 -
Django之CSRF
csrf(跨站请求伪造),django自带的csrf中间件需要对post请求进行验证,如果注释该中间件,则不进行验证,任何网站发过来的post请求均可以通过以下模拟跨站请求攻击:正常的请求方式为test与index,攻击网页为attackdef test(request): res = {"state":True,"msg":contents} if request.met...原创 2019-07-07 17:16:27 · 207 阅读 · 0 评论 -
自定义分页组件
背景:django自带的分页组件不能很好的支持页码操作实现:结合bootstrap自定义分页组件组件:# 自定义分页组件class SplitPage: ''' @:cur_page:当前页码 @:rouNum:数据总行数 @:perPage:每页显示的行数 @:displayPageNum:要显示的页码数 ''' def _...原创 2019-06-01 21:31:17 · 174 阅读 · 0 评论 -
django之CBV模式,反向查找及自带分页
1.ORM操作之CBV操作 CBV模式:基于类的视图模块 FBV模式:基于函数的试图模块 1.1.CBV模式的url格式 url(r'^test\.html$',views.Test.as_view()), 1.2.CBV模式的视图內容 from django.views import View f...原创 2019-06-01 18:09:42 · 293 阅读 · 0 评论 -
Django之ORM操作--单表增删改查与外键创建
1.django不能创建库,要预先创建数据库 CREATE DATABASE studentadminDB DEFAULT CHARACTER SET utf82.django创建项目 D:\PYTHON\Process>django-admin startproject studentadmin3.django创建应用 D:\PYTHON\Process\stude...原创 2019-06-01 15:09:06 · 638 阅读 · 0 评论 -
Django之路由系统介绍
Django路由系统介绍1.一对一路由系统 1.1 路由规则: url(r'^test/', views.test), 后端对应的处理函数: def test(request): return HttpResponse("hello") 访问时可用的url:http...原创 2019-05-28 23:26:33 · 237 阅读 · 0 评论 -
Python之进程锁
背景:多个进程操作同一个资源,会引发数据安全问题# 模拟买票过程from multiprocessing import Processimport timeimport json# 首先创建一个余票文件# dic = {'ticket':1}# f = open('ticketDB','w')# json.dump(dic,f)# f.close()# 定义一个买票类...原创 2019-04-13 14:37:32 · 1346 阅读 · 0 评论 -
Python之线程池
# concurrent.futures模块# ThreadPoolExecutor:线程池# ProcessPoolExecutor:进程池# 线程池使用案例# from concurrent.futures import ThreadPoolExecutor# import time## def func(n):# time.sleep(1)# print...原创 2019-04-16 16:19:12 · 258 阅读 · 1 评论 -
Python之类的命名空间与组合概念
# class A:# staticVariable = 'v1.0'# a = A()# print(a.staticVariable)# a.staticVariable = 'v1.1'# print(a.staticVariable) # v1.1# print(A.staticVariable) # v1.0# 使用对象.属性的方法修改不可变数据类型的静态属性,其实...原创 2019-03-10 21:07:19 · 350 阅读 · 0 评论 -
Python之面向对象基本语法
class Person: # 定义一个类 version = 'v1.0' # 类属性,静态属性 def __init__(self,name,gender,job): # 给类传参数,初始化方法 print(id(self),self.__dict__) # 2017506592864 {} self.name = name # self.变量...原创 2019-03-10 15:56:24 · 189 阅读 · 0 评论 -
Python之异常处理
'''异常处理结构一.try: ... except(Errortype) as e: ...二.try: ... except(Errortype) as e: ... finally: # 无论是否异常均会执行 ...三.try: ... except Exception: 万能异常捕获...原创 2019-03-10 14:56:43 · 115 阅读 · 0 评论 -
Python之模块与包
'''模块导入过程:0.先判断sys.modules字典中查看模块是否已经存在,如存在则不做任何操作 1.从sys.path路径下找到模块 2.创建模块的命名空间 3.把文件中的名字都放到这个命名空间里'''# import sys# print(sys.path)# import modue1 # ...原创 2019-03-10 14:34:28 · 165 阅读 · 0 评论 -
Python之常用模块一与序列化
# collections# namedtuple# deque# Counter# OrderedDict# defaultdict# 命名元组# from collections import namedtuple# websites = [# ('Sohu','http://www.google.com',u'张朝阳'),# ('Sina','http:/...原创 2019-03-09 23:08:30 · 243 阅读 · 0 评论 -
Python之递归与正则
一.递归# 在一个函数中调用自己# count = 0# def fun():# global count# count += 1# print("第%s次调用自己" %(count))# fun()# fun() # ==> 输出到第998次,递归最大深度默认998或997# 递归最大深度可修改# import sys# sys.set...原创 2019-02-25 23:31:37 · 540 阅读 · 0 评论 -
Python之常用内置函数与匿名函数
# exec和eval均可以让字符串形式的代码执行起来# exec('print(123)')# eval('print(123)')## print(eval('1+2+3+4')) # 执行完后有返回值# print(exec('1+2+3+4')) # 执行完后没有返回值,支持简单流程控制# 数学运算# print(abs(-10)) # 绝对值# print(divmod...原创 2019-02-24 22:53:45 · 180 阅读 · 0 评论 -
Python之生成器进阶及推导式
生成器进阶案例求平均值 #移动平均值--每输入一个数求一次平均值 def average(): sum = 0 count = 0 avg = 0 while 1: num = yield avg sum += num count +...原创 2019-02-24 16:39:36 · 161 阅读 · 0 评论 -
Python之迭代器,生成器与装饰器进阶
一.迭代器 1.1 可迭代对象: 含有__iter__()方法的对象是可迭代对象 -- 可迭代协议 2.2 迭代器 执行了__iter__()方法返回的就是迭代器,增加了__next__()方法,可以用next取值 迭代器优点: 取值一个一个取,不会一次性取出所有的值,内存占用少二.生成器 2.1 生成器函数 2.2 生...原创 2019-02-23 21:04:40 · 197 阅读 · 0 评论 -
Python之装饰器与开发原则(开放封闭原则)
一.装饰器:(本质上是一个闭包) 作用:(给一个现有的函数扩展功能) import time import random def sourceFunc(): print("原始函数开始...") time.sleep(random.random()) print("原始函数结束...") # 给原始函数扩展功能...原创 2019-02-23 17:05:05 · 283 阅读 · 0 评论 -
Python之继承
# 继承# class A:pass # 父类,基类,超类# class A1:pass# class A_son(A):pass # 子类,派生类# class A1_son(A,A1):pass # Python特性,支持多继承# print(A.__bases__) # 所有类默认继承object类(新式类),Python3中所有的类都有父类# print(A_son.__bas...原创 2019-03-20 21:14:22 · 131 阅读 · 0 评论 -
Python之接口类,抽象类与封装之私有
# Python中的接口类代码形式是一样的,接口类鼓励多多继承,抽象类鼓励单继承# from abc import ABCMeta,abstractmethod# # 定义一个游泳接口类# class SwimAnimal(metaclass=ABCMeta): # 指定使用ABCMeta元类来创建该类# @abstractmethod# def swim(self):...原创 2019-03-25 22:21:17 · 536 阅读 · 0 评论 -
Python之信号量,事件,条件与定时器
# 线程信号量与进程信号量概念一样,允许指定个数的线程访问一段代码# from threading import Thread# from threading import Semaphore# import time# def func(sem):# sem.acquire()# print('func start...')# time.sleep(1)...原创 2019-04-16 15:44:10 · 329 阅读 · 0 评论 -
Python之守护线程与锁
# 守护线程随着子线程结束而结束,与守护进程不一样--守护进程随着主进程代码执行完毕而结束# from threading import Thread# import time## def func1():# while True:# time.sleep(1)# print("in func1")# def func2():# ...原创 2019-04-16 13:59:10 · 687 阅读 · 0 评论 -
Python之多线程
# 开启多线程的方式一# from threading import Thread# import time# # 定义需要多线程执行的代码# def func(n):# time.sleep(1)# print(n)# # 定义一个类# class MyThread(Thread):# # 如果要传参数要定义初始化方法# def __init...原创 2019-04-16 13:16:58 · 106 阅读 · 0 评论