自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 Flask知识点总结

1、Flask配置文件 路由 请求相关&路由 cookie&session 模板jinja2 扩展 闪现 蓝图 中间件2、上下文管理 -----请求上下文:RequestContext ----request 保存用户请求相关信息 ----se...

2019-09-25 09:16:26 198

原创 Flask应用上下文源码剖析流程2(多app应用)

实际开发工作中不需要用,蓝图可实现同样的功能,了解即可!例子:from flask import Flask,current_appfrom werkzeug.wsgi import DispatcherMiddlewarefrom werkzeug.serving import run_simpleapp1 = Flask("app01")app2 = Flask("app0...

2019-09-24 18:22:58 112

原创 Flask应用上下文源码剖析流程1(应用上下文的存取操作)

1、在globals.py中定义了_app_ctx_stack全局变量2、存值2.1、app运行后,执行wsgi_app方法2.2、在RequestContext的push方法中会创建AppContext对象app_ctx.2.3、app_ctx.push()执行AppContext的push方法,将app_ctx通过LocalProxy存入Local中。3、移...

2019-09-24 18:22:44 365

原创 Flask请求上下文源码剖析流程

1、谈谈你对flask上下文管理机制的理解?首先说一下ThreadingLocal,对每个线程保存它的数据,但是flask为了支持协程,自己封装了一个Local对象,其中创建了一个字典,{greenlet加唯一标示:存数据},这样可以保证数据隔离。请求到来时:1、把request,session,等请求相关的数据封装到了RequestContext中,2、再将RequestCont...

2019-09-23 16:23:06 127

原创 Flask请求上下文源码剖析流程3(Flask中如何处理请求)

1、通过查看源码可以发现,request是一个全局变量,在程序启动时就已经创建了 其中偏函数partial的使用如下: v = partial(add,1) 当执行v()时,会将参数1传给add方法!1.2、执行LocalProxy的__init__方法,其中loca...

2019-09-23 15:21:19 106

原创 Flask请求上下文源码剖析流程2(Flask中如何释放请求相关数据)

1、在Flask类的wsgi_app方法中,try执行请求相关逻辑,请求执行完执行ctx.auto_pop方法:2、RequestContext类方法的auto_pop方法中会执行self.pop方法:3、RequestContext类方法的pop方法调用全局变量_request_ctx_stack.pop方法:4、_request_ctx_stack是LocalStack...

2019-09-23 13:48:46 483

原创 Flask请求上下文源码剖析流程1(Flask中如何保存请求相关数据)

以request为例,因为request最简单。一个完整的app应用程序如下:from flask import Flaskapp = Flask(__name__)@app.route("/")def hello(): return "hello world"if __name__ == "__main__": app.__call__ app....

2019-09-23 12:33:49 391

原创 Flask之分析线程和协程threadinglocal应用场景(Flask的request,session内部实现原理2)

request源码分析: 1、若考虑单进程单线程,可使用全局变量; 2、若考虑单进程多线程,可使用threading.local; 3、若考虑单进程单线程(多个协程),threading.local做不到,需要自定义类似threading.loacal(支持协程);如下是自定义的可支持协程,线程的Local类:需要注意:1、__se...

2019-09-20 17:10:27 244

原创 Flask之threading.local(Flask的request,session内部实现原理1)

threading.local对象,用于为每个线程开辟一块空间来保存他独有的值# !/usr/bin/env python# -*- coding:utf-8 -*-import threadinglocal_values = threading.local()def func(num): local_values.name = num import tim...

2019-09-19 10:16:21 251

原创 pycharm安装pytoch各种问题

pip install torch==1.7.0报错如下:Collecting torch Using cached torch-1.7.0-cp37-cp37m-win_amd64.whl(184.0 MB)ERROR: torch ahs an invalid wheel, .dist-info directory not found解决方法:If you do not need a CUDA installationpip install torch==1.7.0+.

2020-12-30 10:48:28 1996

原创 Python软件开发规范

软件开发规范:编写一个软件时应该遵循的规则规则是什么?规则就是bin ----启动文件start.pycore --主逻辑src.pyconf------配置文件(静态文件)settings.pylib-----公共组件common.pydb-----数据相关log---日志README.md---------说明书...

2020-12-15 15:24:02 224

原创 JWT原理和实战应用

1、jwtjsonweb token,一般用于用户认证(前后端分离/微信小程序/app开发)。基于传统的token认证用户登录,服务端返回token,并将token保存在服务端以后用户再来访问时,需要携带token,服务端获取token后,再去数据库中获取token进行校验.jwt用户登录,服务端返回token,(服务端不保存)以后用户再来访问时,需要携带token,服务端获取token后,再做token校验.优势:相较于传统的token相比,它无需在服务端保存token..

2020-12-14 15:15:00 2178

原创 Windows平台下Git服务器搭建

第一步:下载Java,下载地址:http://www.java.com/zh_CN/第二步:安装Java.安装步骤不再详述,一路下一步;第三步:配置Java环境变量.右键”计算机” => ”属性” => ”高级系统设置” => ”高级” => “环境变量” => “系统变量”。新建: 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jre1.8.0_271 2、新建:变量名:CLASSP...

2020-12-11 14:32:00 164

原创 Git如何合并分支到主干及合并主干到分支

1、合并分支到主干(ps:前提在分支开发完毕) 切换到分支 git checkout 分支名 提交新开发代码到分支本地仓库 git commit -m "提交日志" 切换到主干master git checkout master 在master上执行gitpull 拉取远端最新代码 git pull 在master上合并分支代码 git merge 分支名 若有冲突,根据提示哪个文件冲突,打开冲突文件编辑保存后重新合并分支代码(git merge

2020-12-11 14:05:48 3997 1

原创 调用阿里云语音识别接口

1、

2020-11-05 16:26:58 3310

原创 协程初探

1、协程初探协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是协程:协程是一种用户态的轻量级线程,所以操作系统是不知道的。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此:协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说...

2019-12-13 17:23:51 122

原创 ssh登录和paramiko模块

https://www.cnblogs.com/zhujingzhi/p/9686208.htmlhttps://www.cnblogs.com/wupeiqi/articles/5095821.html

2019-12-12 15:19:59 122

原创 多进程multiprocessing间通讯和数据共享

1、进程简介io密集型的尽量使用多线程,如socketserver.multiprocessing模块可以使用一些简单的API批量生生进程,可以实现本地和远程进程间同步,通过使用子进程而不是线程来有效避开了全局解释器锁GIL,因此,该multiprocessing模块允许程序员在给定机器上充分利用多个处理器。它可以在Unix和Windows上运行。一个简单的例子如下:from m...

2019-12-12 14:08:45 771

原创 线程threading同步的几种技术方式

1、lockimport timeimport threading def addNum(): global num #在每个线程中都获取这个全局变量 print('--get num:',num ) time.sleep(1) lock.acquire() #修改数据前加锁 num -=1 #对此公共变量进行-1操作 lock.rel...

2019-12-12 10:27:12 274

原创 socketserver的基本使用

socketserver的介绍:socketserver是标准库中的一个高级模块 socketserver可以简化创建客户端跟创建服务端的代码 SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端。socketserver的使用:首先导入模块:import socketserver 初始化控制器类Ha...

2019-10-22 11:00:45 6593

原创 socket实现大数据传输

socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)...

2019-10-21 14:59:58 7672

原创 反射的妙用

python面向对象中的反射:通过字符串的形式操作对象相关的属性,python中一切事物都是对象(都可以用反射)下列方法适用于类和对象:检查是否含有某属性---hasattr 返回布尔值 获取属性---getattr 没有就会报错 设置属性---setattr 删除属性---delattrimport sysclass WebServer(object): ...

2019-10-01 18:14:02 105

原创 利用sqlacodegen自动生成ORM实体类

1、安装pip install sqlacodegen2、使用sqlacodegen生成案列sqlacodegen --tables test --outfile ./Found.py mssql+pyodbc://sa:Nuctech_50@dsn_name

2019-09-30 17:35:41 234

原创 Flask之flask_migrate组件

from flask import Flaskfrom flask_script import Managerfrom sansa import dbfrom flask_migrate import Migrate,MigrateCommandapp = Flask(__name__)manager = Manager(app)migrate = Migrate(db=db...

2019-09-30 17:22:45 345

原创 Flask-SQLAlchemy项目实战

项目目录结构如下:Flask-SQLAlchemy sansa views account.py __init__.py models.py create_table.py run.py settings.py代码如下...

2019-09-30 16:26:51 1032 1

原创 Flask之flask-script组件

Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开;官方文档:http://flask-script.readthedocs.io/en/latest/from flask import Flaskfrom fla...

2019-09-30 16:16:12 188

原创 win10系统使用flask-sqlalchemy连接sqlserver2014报错:未发现数据源名称并且未指定默认驱动程序

错误信息:sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)')解决方案:1、python配置文件中设置:SQLALCHEMY_DATABASE_U...

2019-09-30 14:27:20 1212

原创 pipreqs导出当前项目依赖库

1、安装pip install pipreqs2、导出依赖库在项目的当前路径输入:pipreqs ./ --encoding=utf-8来导出当前项目依赖的库pip freeze > requestments.txt 导出该电脑已经安装的python库。3、安装依赖库pip install -r requirements.txt ...

2019-09-30 11:52:28 435

原创 SQLAlchemy之关联子查询

#!/usr/bin/env python# -*- coding:utf-8 -*-import timeimport threadingfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String, ForeignKey, UniqueCo...

2019-09-30 10:10:58 923

原创 SQLAlchemy之多对多relationship

#!/usr/bin/env python# -*- coding:utf-8 -*-import timeimport threadingfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String, ForeignKey, UniqueCo...

2019-09-30 09:39:40 504

原创 SQLAlchemy之基于relationship操作ForeignKey

创建表如下:import datetimefrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String, Text, ForeignKey, DateTime, Unique...

2019-09-30 09:32:16 920 2

原创 SQLAlchemy之原生SQL语句

# -*- coding:utf-8 -*-import timeimport threadingfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Indexfrom ...

2019-09-30 09:00:13 3472

原创 SQLAlchemy之常用操作

# 条件ret = session.query(Users).filter_by(name='alex').all()ret = session.query(Users).filter(Users.id > 1, Users.name == 'eric').all()ret = session.query(Users).filter(Users.id.between(1, 3), U...

2019-09-29 17:29:05 116

原创 SQLAlchemy之基本增删改查

# -*- coding:utf-8 -*-import timeimport threadingfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Indexfrom s...

2019-09-29 17:18:36 254

原创 SQLAlchemy之表结构

1、创建表1.ORM不能创建数据库,只能创建表2.默认情况下,⽣成的表名称是类名称的⼩写形式,如果需要指定,设置tablename3.链接数据库的格式:<协议名称>://<⽤户名>:<密码>@<ip地址>:<端⼝>/<数据库名>如果使⽤的是mysqldb驱动,协议名: mysql如果使⽤的是pymysql驱...

2019-09-29 10:11:50 885

原创 SQLAlchemy概述

一. 介绍SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。pip install sqlalchemy组成部分:Engine,框架的引擎 Connection Pooling ,数据库连接池 Dialect,选择连接数...

2019-09-29 09:15:54 176

原创 Flask中内置session处理机制源码剖析3(使用flask-session)

1、使用RedisSessionInterfacefrom flask import Flask,sessionapp = Flask(__name__)app.secret_key = "secret_key"#方式一:# from flask_session import RedisSessionInterface# from redis import Redis# c...

2019-09-27 16:16:07 105

原创 Flask中内置session处理机制源码剖析2(自定义session)

1、自定义session思路请求刚到来: 创建特殊的字典,并添加到Local中: 调用关系: self.session = session_interface.open_session(self.app, self.request) 由于默认app中的session...

2019-09-27 13:35:50 162

原创 Flask之CORS跨域配置

1、安装pip install flask-cors2、flask-cors包也提供了两种方式方式 范围 说明 @cross_origin装饰器 配置单个路由 适用于配置特定的API接口 CORS函数 配置全局API接口 适用于全局的API接口配置 这两中方法原理,都是最后在视图函数执行完后,添加响应头来允许跨域的。2.1、cr...

2019-09-26 17:28:28 1911

原创 Flask中内置session处理机制源码剖析1

Flask中的session处理机制请求刚到来:获取随机字符串,存在则去"数据库"(可以是数据库,文件,内存等)中获取原来的个人数据,否则创建一个空容器。--->内存:对象(随机字符串,(放置数据的容器)) 视图函数:操作内存中对象(对象(随机字符串,(放置数据的容器))) 请求终止/响应:内存中对象(随机字符串,(放置数据的容器)) 保存到数据库或者文件等 随机字符串写在用户...

2019-09-26 16:56:09 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除