- 博客(39)
- 收藏
- 关注
原创 python常用方法
python常用方法字符串01.字符串常用方法1.1 find方法作用:find方法可以在一个较长的字符串中查找子串,他返回子串所在位置的最左端索引,如果没有找到则返回-1a = 'abcdefghijk'print(a.find('abc')) #the result : 0print(a.find('abc',10,100)) #the result : 11 指定查找的起始和结束查找位置1.2
2021-07-08 15:28:58
2275
原创 VueX(Vue状态管理模式)
VueX(Vue状态管理模式)一、初识VueX1.1 关于VueXVueX是适用于在Vue项目开发时使用的状态管理工具,可以方便的实现组件之间的数据共享。试想一下,如果在一个项目开发中频繁的使用组件传参的方式来同步data中的值,一旦项目变得很庞大,管理和维护这些值将是相当棘手的工作。为此,Vue为这些被多个组件频繁使用的值提供了一个统一管理的工具——VueX。在具有VueX的Vue项目中,我们只需要把这些值定义在VueX中,即可在整个Vue项目的组件中使用。1.1.1使用Vuex统一管理状态的好处
2021-07-08 14:46:52
209
转载 解决TypeError Object of type ‘datetime‘ is not JSON serializable问题
解决TypeError: Object of type ‘datetime‘ is not JSON serializable问题1、问题描述使用python自带的json,将数据转换为json数据时,datetime格式的数据报错:TypeError: Object of type ‘datetime’ is not JSON serializable2、解决方法就是重写构造json类,遇到日期特殊处理,其余的用内置的就行。from datetime import date, datetime
2021-07-08 14:41:30
1101
原创 左连接、右连接、内连接、全外连接的区别
左连接、右连接、内连接、全外连接的区别区别:left join (左连接,左外连接):返回包括左表中的所有记录和右表中连接字段相等的记录。right join (右连接,右外连接):返回包括右表中的所有记录和左表中连接字段相等的记录。inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。举个例子:A表id name1 小王2 小李3 小刘B表id A_id j
2021-05-26 17:25:01
520
原创 sql之distinct
sql之distinct在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。表A:表B:1.作用于单列select distinct name from A执行后结果如下:2.作用于多列示例2.1select distinct name, id from A执行后结果如下:实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。示例2.2s
2021-05-26 17:20:33
97
原创 select、epoll、poll
select、epoll、pollselect、poll、epoll是内核的服务windows下只有 select服务、pollLinux下:select、poll、epoll怎么使用协程tornadohttps://www.cnblogs.com/xiaonq/p/7907871.html1.1 I/O 多路复用特点: 用户还是要等待数据从kernel拷贝到用户进程IO multiplexing就是我们说的select,poll,epoll,有些地方也称这种IO方式为
2021-02-20 15:27:10
360
原创 装饰器,迭代器,生成器
装饰器,迭代器,生成器01.装饰器1.1 什么是装饰器?(What)装饰器本质是函数,用来给其他函数添加新的功能特点:不修改调用方式、不修改源代码1.2 装饰器的应用场景?(Where)用户认证,判断用户是否登录计算函数运行时间(算是一个功能、在项目里用的不多)插入日志的时候redis缓存1.3 为什么使用装饰器?(Why)结合应用场景说需求1.4 如何使用装饰器?(How)1.4.1 装饰器求函数运行时间import timedef timer(func):
2021-02-20 15:20:17
122
原创 Python中 进程 线程 协程 (多任务概念)
Python中 进程 线程 协程 (多任务概念)进程具体操作:https://v3u.cn/a_id_113进程是执行中的计算机程序。也就是说,每个代码在执行的时候,首先本身即是一个进程一个进程具有:就绪,运行,中断,僵死,结束等状态(不同操作系统不一样)。生命周期:用户编写代码(代码本身是以进程运行的)启动程序,进入进程“就绪”状态操作系统调度资源,做“程序切换”,使得进程进入“运行”状态结束/中断特性每个程序,本身首先是一个进程运行中每个进程都拥有自己的地址空间、内存、数
2021-02-09 15:55:30
328
1
原创 进程,线程,协程-python实现
进程,线程,协程-python实现线程创建线程# 单线程# import threading,time## def func():# for i in range(5):# print("hello python")# time.sleep(1)## if __name__ == '__main__':# 创建线程对象# say_thread = threading.Thread(target=func)# 启动# say
2021-02-09 15:54:07
170
1
原创 redis分布式锁解决超卖问题
redis分布式锁解决超卖问题1.1 redis事物1、redis事物介绍1. redis事物是可以一次执行多个命令,本质是一组命令的集合。2. 一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入作用:一个队列中,一次性、顺序性、排他性的执行一系列命令2、multi 指令基本使用1. 下面指令演示了一个完整的事物过程,所有指令在exec前不执行,而是缓存在服务器的一个事物队列中2. 服务器一旦收到exec指令才开始执行事物队列,执行完毕后一次性返回所有结果3. 因为re
2021-01-13 19:08:14
828
原创 算法--python实现
算法–python实现二分查找(折半查找)概念: 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。原理: 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找
2021-01-04 17:17:05
111
原创 python基础----语言相关
python基础----语言相关1.解释型语言和编译型语言的区别解释型语言: Python,Shell,PHP,JaveScript,MATLAB等通常不用对源代码进行编译,通过解释器一边执行一边转换,需要哪些源代码就转换哪些源代码,不生成可执行程序;这种编程语言叫做解释型语言,使用的转换工具叫解释器;但解释型语言太过于依赖解释器环境,而解释器本身就是一个虚拟环境,没运行代码之前就得申请内存,开辟空间启动解释器,过于消耗内存影响效率。特点:写代码效率高,立竿见影看效果,调bug轻松,
2020-12-30 15:50:06
109
原创 WebSocket
WebSocketWebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。现在,很多网站
2020-12-24 19:02:04
126
1
原创 git常用命令
git常用命令git基础配置#设置全局用户名,邮箱安装完成以后,只设置一次就可以了,以后不需要设置git config --g1oba1 user . name “用户名”git config --g1oba1 user . email “邮箱”git init #初始化仓库git add . #.代表添加有改变的内容git commit -m ‘first commit’ #提交缓存内容git remote add origin 仓库地址 #把git地址添加到origin
2020-12-23 16:46:32
103
原创 Django cookie 与 session代码实现
Django cookie 与 session代码实现cookie 与 session的区别与理解参考:https://zhangyu-0724.gitee.io/myhexo/2020/12/18/cookie%20%E4%B8%8E%20session/https://blog.csdn.net/weixin_51958339/article/details/111387519Django 中 Cookie 的语法设置 cookie:rep.set_cookie(key,value,...)
2020-12-19 09:14:56
157
1
原创 cookie 与 session
cookie 与 session什么是cookieCookie是由服务器端生成,发送给浏览器,浏览器会将Cookie的key,value保存到某个目录下的文本文件内,下次请求同一网站时自动发送该Cookie给服务器Cookie可以用来在某个WEB站点会话间持久的保持状态示例:由于hTTP是一种无状态的协议,服务器单从网络连接上无法记录和判断多次访问的用户状态就好比你开了个奶茶店重,有顾客买了个奶茶走了,下一次再来买,你怎么有这个信客理你的老顾客,好好招待他呢?解决办法很简单,就是办个会员
2020-12-18 18:48:05
127
1
原创 django基础与Linux下配置
1,web项目工作流程1.1 了解web程序工作流程1.2 django生命周期2,django介绍目的:了解Django框架的作用和特点作用:简便、快速的开发数据库驱动的网站Django的优势快速开发MVT功能齐全Django学习版本: 1.11.11思考:用django还是flask开发数据驱动web网站(复杂业务逻辑)数据分析后的结果展示界面, flask快速成型应用上线, 就用django3,Django设计模式(MVC/MTV)目的:
2020-12-17 08:18:21
161
原创 python垃圾回收机制
title: python垃圾回收机制date: 2020-12-15tags:python基础–垃圾回收机制一.引用计数 1.引用计数是计算机编程语言中的一种内存管理技术**,是指将资源(可以是对象、内存或磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。 2.在引用计数中,每一个对象负责维护对象所有引用的计数值。当一个新的引用指向对象时,引用计数器就递增,当去掉一个引用时,引用计数就递减。当引用计数到零时,该对象就当做垃圾释放占有的资源。 .
2020-12-17 07:51:23
101
原创 13.2 uwsgi_wsgi_nginx理论
1. web容器什么是web容器web容器是帮助我们部署java、php、python、vue等项目的作用(处理请求,返回数据)第一,帮助django服务端处理客户端连接,官方号称可以处理10万(实现高并发)第二,帮助处理静态资源请求(html、css、JS),返回给客户端浏览器(django等web服务器处理静态资源能力差)常见web容器1.nginx(python、php)LNMPL:LInuxN:Nginx M:MySQL P: php2.ap
2020-11-14 18:14:09
150
原创 13.1.前后端分离 linux(虚拟机下)安装部署njinx + uwsgi + django + vue(Windows)
配置Uwsgi+Nginx+Django+Vue.django的settings配置这里可以先不必配置# 1.修改配置# 正式上线关闭调试模式, 不会暴露服务器信息DEBUG = False# 2.允许的主机ALLOWED_HOSTS = ['xxx.com','127.0.0.1']# 3.前端修改接口地址(vue)http://192.168.56.100:8888/ => http://xxx.com/# 4.MySQL数据库根据实际情况配置(注意地址)# 5
2020-11-14 17:39:35
218
原创 11.1.2.Linux下Django 支付宝(沙箱)测试支付
Django支付宝(沙箱)后端接口创建app 仅供参考 你需要自己创建相应的表(model)app\model# Create your models here.from django.db import modelsfrom utils.MyBaseModel import Baseclass Goods(Base): GOODS_TYPE = ( ('1', 'Vip'), ('2', 'Course') ) CHANN
2020-11-09 21:48:42
241
原创 11.1. Django支付宝(沙箱)开放平台
支付宝支付Linux下Django接口https://blog.csdn.net/weixin_45954124/article/details/109584625流程概念图新建支付宝应用# 访问"支付宝开发平台"登录,可以访问开发者中心https://open.alipay.com/platform/home.htm# 可以参考"电脑网站支付" 熟悉电脑支付整体流程https://docs.open.alipay.com/270/105899/第一步:创建应用(
2020-11-09 21:46:05
209
原创 10.2 .三方登录微博
三方登录微博流程图 必会生成微博授权URL接口创建apps/oauth模块进行oauth认证'''2.1 在apps文件夹下新建应用: oauth'''cd syl/appspython ../manage.py startapp oauth # 切换到apps文件夹下执行创建命令'''2.2 添加子路由: oauth/urls.py'''from django.urls import pathfrom . import viewsurlpatterns = [
2020-11-07 20:24:28
126
原创 9.4.vue发送短信
1.vue发送短信逻辑前端函数如下,js方法代码无需更改,前端代码逻辑在components\common\lab_header.vue只需要修改components\axios_api\http.js中调用的后端地址// axios.defaults.baseURL = "http://127.0.0.1:8000/"axios.defaults.baseURL = "http://192.168.56.100:8888/" // 获取手机验证码 sendco
2020-11-04 21:43:23
311
原创 9.3.异步发送短信验证码
1.celery配置与基本使用1.1 安装celerypip install celery==5.0.01.2 新建celery/main.py配置celery# celery_task/main.pyimport osfrom celery import Celery# 定义celery实例, 需要的参数, 1, 实例名, 2, 任务发布位置, 3, 结果保存位置app = Celery('mycelery', broker='redis://127.0.0.
2020-11-04 20:44:04
249
原创 9.2.celery配置与基本使用
1.celery配置与基本使用1.1 安装celery pip install celery==5.0.01.2 新建 celery_tast/main.py 配置celery# celery_task/main.pyimport osfrom celery import Celery# 定义celery实例, 需要的参数, 1, 实例名, 2, 任务发布位置, 3, 结果保存位置app = Celery('mycelery', broker='redis:/
2020-11-04 17:00:19
124
原创 9.1 .Celery原理与组件
1.Celery介绍https://www.cnblogs.com/xiaonq/p/11166235.html#i11.1 celery应用举例Celery 是一个 基于python开发的 分布式异步消息任务队列 ,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用celery你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执行
2020-11-04 16:59:23
157
原创 7.1.图片验证码
验证码接口安装模块pip install django-redis==4.12.1syl/settings.py 中配置缓存.django 缓存设置django的六种缓存(mysql+redis) :https://www.cnblogs.com/xiaonq/p/7978402.html#i6# 缓存配置CACHES = { # django存缓默认位置,redis 0号库 # default: 连接名称 "default": {
2020-11-03 22:03:39
77
原创 6.2 JWT 登录接口
JWT安装配置安装JWTpip install djangorestframework-jwt==1.11.0syl/settings.py 配置jwt载荷中的有效期设置# jwt载荷中的有效期设置JWT_AUTH = { # 1.token前缀:headers中 Authorization 值的前缀 'JWT_AUTH_HEADER_PREFIX': 'JWT', # 2.token有效期:一天有效 'JWT_EXPIRATION_DELTA
2020-11-02 21:11:22
114
原创 5.2.Vue组件
Vue组件组件定义什么是组件Html中有组件,是一段可以被复用的结构代码Css中有组件,是一段可以被复用的样式Js中有组件,是一段可以被复用的功能 Vue中也有组件,指的就是一个模块,是一个独立的,完整的(包含html,css,js等),可以直接 拿来用的组件特性组件的实例化对象,跟vue实例化对象一样,因此,我们也可以将vue实例化对象看成组件组件间是独立的,因此数据要独立存储,方法要独立定义, 彼此间不能共享 。.父组件向子组件传值components/C
2020-11-01 20:09:27
74
原创 5.1.图书管理前端页面
1.图书管理页面1.1 http/apis.js添加后端请求路由import { get, post, put, del } from './index'// 书籍管理接口export const getBookList = (params, headers) => get("/books/book/", params, headers) export const addBook = (params, headers) => post("/books/book/", params, h
2020-11-01 16:07:48
1076
原创 4.3.图书管理系统后端接口
1.图书管理系统后端接口1.1 books/models.py中设置表from django.db import models# Create your models here.class Book(models.Model): btitle = models.CharField(max_length=30) bpub_date = models.DateField() bread = models.IntegerField() bcomment = models
2020-10-29 21:49:51
942
原创 4.2. django跨域配置
1.创建一个测试项目1.1 创建项目和APP'''1.创建项目和APP''' django-admin startproject BookManage # 创建项目 python manage.py startapp books # 创建APP'''2.在settings中注册books模型''' INSTALLED_APPS = [ 'books.apps.BooksConfig'] # 注:pycharm无法联想,需要把apps文件夹设置为源根'''3.u
2020-10-29 15:35:01
416
原创 4.1 axios封装
1. 始vue化项目https://www.cnblogs.com/xiaonq/p/11027880.htmlvue init webpack deaxios # 使用脚手架创建项目 deaxios(项目名,随便取得)cd deaxios # 进入项目npm install axios@0.19.2 # 安装axiosnpm i element-ui -S # 安装elemen
2020-10-29 14:58:09
52
原创 3.3 model操作
**1.**创建表https://www.cnblogs.com/xiaonq/p/7978409.html1.1 Meta源信息from django.db import modelsclass UserInfo(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=32) cls = models.ForeinKey(CLS)
2020-10-28 21:33:30
161
原创 3.2.RESTful风格API
1.RESTful风格API1.1 什么是RESTfulREST与技术无关,代表的是 一种软件架构风格 (REST是Representational State Transfer的简称,中文翻译为“表征状态转移”)REST从资源的角度类审视整个网络,它将分布在网络中某个节点的 资源通过URL进行标识所有的数据,不过是通过网络获取的还是 操作(增删改查) 的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性对于REST这种面向资源的架构风格,有人提出一种全新的结构理念,即:
2020-10-28 16:14:06
57
原创 3.1.APIview使用
1.APIview使用ModelViewSet 是对 APIView 封装ModelSerializer 是对 Serializer1.1 在 user/urls.py 中添加路由urlpatterns = [ path('apiview/', views.UserInfoViewSet.as_view()),]1.2 创建user/serializers.py写序列化器serializers.ModelSerializer 和 serializers.Serializer fi
2020-10-28 15:18:14
129
原创 2.1.DRF初始化 modelviewset
1.DRF初始化1.DRF框架的8个核心功能1.认证(用户登录校验用户名密码或者token是否合法)2.权限(根据不同的用户角色,可以操作不同的表)3.限流(限制接口访问速度)4.序列化(返回json)5.分页6.版本(接口版本号,用 v1/v2/v3)# api.example.com/v1/login # 只有用户名密码登录# api.example.com/v2/login # 手机号,微信 登录 7.过滤(username=zhangsan)8.排序(orderi
2020-10-27 21:32:33
185
原创 1.2.Django项目在Linux下基础配置
1.初始化项目结构└─shiyanlou_project # 项目根路径│ .gitignore # 提交git仓库时,不提交的文件必须要在这里进行标注│ README.en.md # 英文(项目介绍)│ README.md # 中文项目简介│ requirements.txt # django项目安装文件│├─celery_task # 用来存放celery相关文件(以便分
2020-10-27 07:41:36
222
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人