python+ WEB开发
文章平均质量分 64
python小陈
广东潮汕python小陈, 前来报告, 各位好汉,请多多指教!!!!
展开
-
FastAPI+apSheduler动态定时任务
一、apSheduler第一部分内容限于apSheduler3.0以下版本,以上版本可移步至FastAPI+apSheduler动态定时任务https://www.cnblogs.com/zhangliang91/p/11603916.html1. 引子(Introduction)Advanced Python Scheduler (APScheduler) 是一个轻量级但功能强大的进程内任务调度器,允许您调度函数(或任何其他python可调用文件)在您选择的时间执行。2. 特性(Fe.原创 2020-11-18 10:20:48 · 5845 阅读 · 1 评论 -
SQL sum over partition by 的用法
0、select * from wmg_test; ---测试数据1、select v1,v2,sum(v2) over(order byv2) as sum --按照 v2排序,累计n+n-1+....+1from wmg_test;2、select v1,v2,sum(v2) over(partition by v1order byv2) as sum --先分组,组内在进行 1 中的操作from wmg_test;3、sel...原创 2020-11-17 09:38:10 · 1409 阅读 · 0 评论 -
对装饰器的理解
装饰器本质上是一个 python 函数,在函数中嵌套一个函数,它主要作用的是在不修改函数代码的前提下给函数增加额外的功能,装饰器返回值也是一个函数对象 装饰器的实现原理,是利用闭包函数。闭包函数,就是在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,这个函数以及用到的变量,称之为闭包 在数学应用上,我们可以用装饰器原理去求解斐波那契数列,斐波那契数列,从第三项开始...原创 2018-07-20 00:00:31 · 196 阅读 · 0 评论 -
对celery 的理解
celery 是一种 简单、灵活、可靠的,用来处理多个消息的分布式系统,相当于调发器。 我比较喜欢的一点:celery 支持使用任务队列的方式,在分布的机器、进程、线程上执行任务的调度 celery 的架构由 消息中间件 、 任务执行单元 和 任务执行结果存储三部分组成 消息中间件,celery 本身不提供消息服务,但可以方便的和第三方提供的消息中间件集成,比如发...原创 2018-07-19 08:45:08 · 627 阅读 · 0 评论 -
用户密码是怎么保护的
对于大部分网站,密码的存储和验证过程简单来说就是:密码存储,用户输入密码,密码加密后被传输到数据库存储起来,密码验证,密码加密后和存储在数据库加密后的密码进行比较。 一般每个网站都有一个或多个专门存储密码的数据库。 项目中我们使用 hash 算法来进行密码加密保护的,hash 算法是一种单项的函数,它可以把任意数量的数据转换成固定的长度的哈希值,也就是说将一个大集合映射到一...原创 2018-07-19 08:45:36 · 289 阅读 · 0 评论 -
迭代器和生成器
迭代器,一个实现了 --iter-- 方法 和 --next-- 方法的对象,迭代器同时也是一个可迭代的对象python 中的列表、元组、字符是迭代对象,如果实现了iter方法和next方法 然后他就是迭代器for ....in.. ..循环本质就是先通过iter()函数获取一个可迭代对象的迭代器,然后对获取的迭代器不断调用next()方法来获取下一个值生成器是一种特殊的迭代器,只要在...原创 2018-07-18 17:16:11 · 180 阅读 · 0 评论 -
RESTful 设计风格有了解吗?
(视图主要用于封装结果,生成页面展示的html内容)RESTful 是一种开发理念,简洁,;层次感,主要体现在每个URL代表一种资源,所以在开发REST API 接口时,视图中要频繁的进行序列化和反序列化,将数据库数据序列化为前端所需要的格式,并返回,将前端发送的数据反序列化为模型类对象,并保存到数据库中·之前的开发的一个电商商城就是用这种 RESTful 设计风格,我们将 API部署在专...原创 2018-07-19 08:44:57 · 2181 阅读 · 0 评论 -
python 的垃圾回收机制?
python 中的垃圾回收机制是以引用计数为主,分代收集为辅 引用计数,当一个对象的引用数为 0时,python 虚拟机就会回收这个对象的内存。出现循环引入的问题,引入 gc 模块,解决循环引用的问题, gc 模块自动垃圾回收机制,主要作用就是发现并处理不可达的垃圾对 象,采用分代收集的方法,将对象分为三代,一开始,对象在创建的时候,放在一代,如果一次一代的检查中,对象存活...原创 2018-07-18 17:15:55 · 206 阅读 · 0 评论 -
事务的隔离级别有哪些?
事务:一个操作序列,要么同时执行,要么同时不执行,是一个不可分割的工作单位事务有四大特性,原子性 一致性 持久性 与 隔离性 ① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。 ② Repeatable read (可重复读):可避免脏读、不可重复读的发生。 ③ Read committed (读已提交):可避免脏读的发生。 ④ Read u...原创 2018-07-20 00:00:42 · 2196 阅读 · 0 评论 -
用两种以上的方式实现单例模式
单例设计模式是一种常用的软件设计模式,作用,确保某一个类只有一个实例存在,即某个类智能出现一个实例。在项目中。客户端读取服务器配置信息,就是用这种单例模式,就是说服务器运行期间同一时间只有一个AppConfig实例对象可以读取配置信息电脑中的回收站实现单例模式的几种方式: 使用模块,python 模块是天然的单例模式,只要把相关的函数和数据定义在一个模块中,就可以获得一个单例对象...原创 2018-07-19 08:48:35 · 323 阅读 · 0 评论 -
乐观锁和悲观锁
悲观锁:不相信其他人不会修改,传统的关系型数据库里边就用到了很多这种锁机制,如mysql, 每次查询、修改数据操作之前就会上锁,整个数据处理过程中,将数据处于锁定状态,自己更新数据后再释放锁,可以有效防止库存冲突问题乐观锁:相信其他人不会修改,所以查询、修改数据库时不会上锁,所以再数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则返回错误的信息,让用户决定如何 去做...原创 2018-07-20 00:00:52 · 2553 阅读 · 0 评论 -
django rest framework serializers小结
引言 serializers是什么?官网是这样的”Serializers allow complex data such as querysets and model instances to be converted to native Python datatypes that can then be easily rendered into JSON, XML or other con...转载 2018-07-05 19:23:19 · 532 阅读 · 0 评论 -
QQ第三方登录流程
若想实现QQ登录,需要成为QQ互联的开发者,审核通过才可实现。注册方法可参考链接http://wiki.connect.qq.com/%E6%88%90%E4%B8%BA%E5%BC%80%E5%8F%91%E8%80%85成为QQ互联开发者后,还需创建应用,即获取本项目对应与QQ互联的应用ID,创建应用的方法参考链接http://wiki.connect.qq.com/__trashed-2...原创 2018-07-07 09:02:27 · 1071 阅读 · 0 评论 -
JWT验证
JWT在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token认证机制。什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。...转载 2018-07-07 09:05:00 · 292 阅读 · 1 评论 -
数据库设计
数据库设计关系型数据库建议在E-R模型的基础上,我们需要根据产品经理的设计策划,抽取出来模型与关系,制定出表结构,这是项目开始的第一步 在开发中有很多设计数据库的软件,常用的如power designer,db desinger等,这些软件可以直观的看到实体及实体间的关系 设计数据库,可能是由专门的数据库设计人员完成,也可能是由开发组成员完成,一般是项目经理带领组员来完成 现阶段不需要独...转载 2018-07-07 09:35:15 · 244 阅读 · 0 评论 -
浏览器访问网站的过程
浏览器访问网站的过程基本流程如下:用户输入网址. 浏览器请求DNS服务器, 获取域名对应的IP地址. 请求连接该IP地址服务器. 发送资源请求. (HTTP协议) web服务器接收到请求, 并解析请求, 判断用户意图. 获取用户想要的资源. 将资源返回给http服务器程序. http服务器程序将资源数据通过网络发送给浏览器. 浏览器解析呈现请求的数据.域名是什么呢?...原创 2018-07-07 09:37:53 · 607 阅读 · 0 评论 -
使用Django发送邮件
使用Django发送邮件Django中内置了邮件发送功能,被定义在django.core.mail模块中。发送邮件需要使用SMTP服务器,常用的免费服务器有:163、126、QQ,下面以163邮件为例。1)注册163邮箱,登录后设置。2)在新页面中点击“客户端授权密码”,勾选“开启”,弹出新窗口填写手机验证码。3)填写授权码。4)提示开启成功。5) 在Django配置文件中...原创 2018-07-08 00:43:57 · 624 阅读 · 0 评论 -
with 语句与上下文管理器
通常用在共享资源的获取和释放,比如文件、数据库和 线程资源,一般跟上下文管理器一起使用主要用处,比如用python 打开了一个文件写入内容,忘了关闭这个文件,不正常关闭的话可能会文件操作是出现异常,还有数据库连接是一样,连接过多而没有及时关闭的话,可能出现不能继续连接的异常错误,with 语句和上下文管理器,检查异常、处理异常 with 语句是在python 2.6出现的新语句,简化...原创 2018-07-18 17:15:42 · 363 阅读 · 0 评论 -
redis 如何做持久存储?
redis 持久化储存的方法: rdb 方式(快照) 快照,针对内存进行的快速读取技术 将 内存中的数据以快照的方式写到二进制文件 rdb 中,可以通过配置设置自动做快照持久化的方式,我们可以设置 redis 在 n 秒内如果超过 m 个 key 键修改就自动做快照 数据快照的原理,将整个 REDIS 内存中的所有的数据遍历一遍存储到一个扩展名为 rdb 的数据...原创 2018-07-18 17:16:29 · 438 阅读 · 0 评论 -
同时在线用户人数怎么统计?
每次用户操作时更新其在线时间,在用户表里加上一个 update_time 字段,每次用户进行操作时,更新这个字段为当前的时间,然后再定义一个过期时间,比如十分钟,表示十分钟内没有任何操作默认用户不在线。 将在线用户单独放入一张表,每次用户操作时,先判断表里有没有该用户的记录,没有就新增 用 JS 定时器,在每个 HEML 模板里,加入一个 JS 定时器,每隔 10分钟发送一...原创 2018-07-18 17:16:20 · 3579 阅读 · 0 评论 -
Conda install package遇到CondaHTTPError: HTTP 000 Connection Failed问题
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/xiangcheng001/article/details/90022419新安装的anaconda,在使用conda install时候会遇到错误信息:SSLError(MaxRetryError('HTTPSConnectionP...转载 2019-09-17 17:37:27 · 657 阅读 · 0 评论 -
几张图帮你理解 docker 基本原理及快速入门
几张图帮你理解 docker 基本原理及快速入门写的非常好的一篇文章,不知道为什么被删除了。 利用Google快照,做个存档。快照地址:地址作者地址:青牛什么是dockerDocker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apa...转载 2018-08-21 11:05:30 · 304 阅读 · 0 评论 -
Docker学习笔记
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。官网:https://www.docker.com/相关资料:1、Docker入门教程 http://dockone.io/article/1112、Docker_百度百科 http:...转载 2018-08-21 11:02:54 · 1211 阅读 · 0 评论 -
python中的正则表达式(re模块)----compile
python中的正则表达式(re模块)一、简介正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。二、正则表达式中常用的字符含义1、普通字符和11个元字符:普通字符 匹配自身 abc ...转载 2018-08-01 18:03:48 · 10038 阅读 · 0 评论 -
生产者和消费者模型介绍
一、概念引入日常生活中,每当我们缺少某些生活用品时,我们都会去超市进行购买,那么,你有没有想过,你是以什么身份去的超市呢?相信大部分人都会说自己是消费者,确实如此,那么既然我们是消费者,又是谁替我们生产各种各样的商品呢?当然是超市的各大供货商,自然而然地也就成了我们的生产者。如此一来,生产者有了,消费者也有了,那么将二者联系起来的超市又该作何理解呢?诚然,它本身是作为一座交易场所而诞生。将...转载 2018-07-22 22:59:29 · 3869 阅读 · 2 评论 -
常见HTTP的响应头,请求头,状态码
常见请求头 1.Host:请求的主机和端口号2.User-Agent:浏览器的相关信息。 3.Accept:浏览器可以接收的请求的类型。 4.Accept-Language:浏览器可以接收的语言和国家类型。5.Accept-Encoding: 浏览器可以接收的压缩编码的类型。6.Cookie:浏览器暂存服务器发送的信息。 7.Connection:Http请求版本的特点。 除此...原创 2018-07-21 23:31:15 · 1429 阅读 · 0 评论 -
对尾递归的理解
递归,在程序运行过程中调用自己,每一级递归都需要调用函数,会创建新的栈空间,随着递归深度的增加,创建的栈越来越多,造成栈的爆炸 尾递归基于函数的尾调用,每一级调用直接返回函数的返回值更新调用栈,而不是创建新的调用栈,类似迭代的实现,时间和空间上均优化了一般的递归 存在的问题,python不支持尾递归,递归深度超过1000时会报错 有人对python的尾递归写了一个...原创 2018-07-21 23:25:56 · 214 阅读 · 0 评论 -
在linux系统上安装mongodb运行出现问题
试试两种解决方案sudo systemctl unmask mongodbsudo service mongod start或者1创建配置文件:sudo nano /etc/systemd/system/mongodb.service2复制代码[Unit]Description=High-performance, schema-free document-oriented d...原创 2018-07-26 22:04:01 · 822 阅读 · 0 评论 -
cookie 跨域的问题?
v一、前言 随着项目模块越来越多,很多模块现在都是独立部署。模块之间的交流有时可能会通过cookie来完成。比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入cookie(记录着用户上下文信息),应用想要获取门户下的cookie,这就产生了cookie跨域的问题。 v二、介绍一下cookiev cookie 路径: cookie 一...原创 2018-07-21 09:17:19 · 1271 阅读 · 0 评论 -
在Web 开发中,如何保证设计的接口安全性
接口的安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。Token是客户端访问服务端的凭证。...原创 2018-07-21 09:02:39 · 3655 阅读 · 0 评论 -
提高网站性能的常见方法
一.Web前端性能优化一般来说Web前端指网站业务逻辑之前的部分,包括浏览器加载,网站视图模型,图片服务,CDN服务等,主要优化手段有优化浏览器访问,使用反向代理,CDN等。1..浏览器访问优化(1)减少http请求HTTP协议是无状态的应用层协议,意味着每次HTTP请求都需要简历通信链路,进行数据传输,而在服务器端,每个HTTP都需要启动独立的线程去处理,这些通信和服务的开销都很...原创 2018-07-25 23:43:33 · 150 阅读 · 0 评论 -
HTTP和HTTPS
HTTP和HTTPS复习内容内容概述HTTP和HTTPS概述 HTTP的请求过程 HTTP的请求形式 HTTP的常见请求头 GET和POST 响应状态码HTTP和HTTPS概述 HTTP和HTTPS在爬虫中的位置 HTTP概述 HTTP 超文本传输协议 默认端口号:80 HTTPS HTTP + SSL(安全套接字层) 默...原创 2018-07-20 00:03:21 · 261 阅读 · 0 评论 -
request和request.form和request.querystring的区别
request和request.form和request.querystring的区别asp中获取传递的参数,一般用request或者用request成员函数request.form,两种方式都可以获取页面表单传递过来的参数值,一直没留意两种方法有什么区别,我一般喜欢用request("abc")这样的形式,简单明了嘛。 最近修改了一些kingcms的代码,其中有一段代码是用request...原创 2018-07-20 00:00:07 · 245 阅读 · 0 评论 -
Git比SVN相比有什么区别呢
git svn 都是个项目开发用来管理代码文档的版本管理控制系统Git比SVN相比有什么区别呢?1. 最核心的区别就是Git是分布式的, SVN是集中式的。SVN必须有一个服务器版本库就放在一个中央服务器。所有开发人员都是与服务器进行交互的。(一般的开发流程就是干活时候从中央服务器得到最新的版本,然后干活,干完后需药把自己做的工作推送到中央服务器。)Git不需要有中心服务器,我们每台电...原创 2018-07-23 22:08:33 · 938 阅读 · 1 评论 -
数据库的优化
一.数据的设计方面: 1.选择适当的冗余 在表中添加合适的字段,方便查询 2.适当建立索引,由于索引不占据内存和不用改写程序,只需要执行sql语句就ok,能提高查询速度 3.对表进行水平划分 将表进行合适的拆分,减少在操作数据库时候的搜索,有利于程序的简单实现,充分利用表的优势 4.对表进行垂直划分 5.选择适当的字段类型,特别是主键:字段选择的一般原则是保小不保...原创 2018-07-18 17:15:15 · 164 阅读 · 0 评论 -
数据库怎么优化查询的效率?
储存引擎选择,如果数据表需要事务处理,应该考虑使用InnoDB, 因为它完成兼容 ACID 特性,如果不需要事务处理,使用默认储存引擎 MyISQM 比较明智 innodn 是 mysql 的数据库引擎之一,最大特色支持 ACID 兼容的事务功能(即事务的四大特性) MyISAM 默认存储引擎,使用高级缓存和索引机制 对查询进行优化,尽量避免全表扫描,...原创 2018-07-18 17:15:24 · 2254 阅读 · 0 评论 -
Django 和 flask 的分页怎么做的?
flask 分页 英/'pædʒɪneɪt/ 英/'ælkɪmɪ/ flask 通过扩展封装了 SQLAlchemy 框架,一种关系型数据库框架 SQLAlchemy 框架提供的 paginate() 方法实现对数据库中查询到的数据进行分页 paginate() 方法接收三个参数,第一个是页码,从一开始,第二个参数是每页显示的数目,第三个参数是错误标志...原创 2018-07-18 17:16:45 · 385 阅读 · 0 评论 -
Flask 框架上下文
上下文上下文:相当于一个容器,保存了 Flask 程序运行过程中的一些信息。Flask中有两种上下文,请求上下文和应用上下文请求上下文(request context)思考:在视图函数中,如何取到当前请求的相关数据?比如:请求地址,请求方式,cookie等等在 flask 中,可以直接在视图函数中使用 request 这个对象进行获取相关数据,而 request 就是请求上下文...原创 2018-07-08 00:48:00 · 209 阅读 · 0 评论 -
项目中的日志使用案例介绍
日志日志相关概念日志是一种可以追踪某些软件运行时所发生事件的方法 软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情 一个事件可以用一个可包含可选变量数据的消息来描述 此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别(level)日志的作用通过log的分析,可以方便用户了解系统或软件、应用的运行情况; 如果你的应用log足够丰富,也可以分析以...转载 2018-07-08 00:59:08 · 872 阅读 · 0 评论 -
数据库怎么优化查询的效率
1)数据库设计方面: a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 b. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列...原创 2018-07-15 11:31:47 · 8778 阅读 · 1 评论