分类目录归档:Python

flask 钩子


flask 钩子

请求钩子

# 在第一次请求之前运行.
# 例子: 比如连接数据库操作, 只需要执行一次
@app.before_first_request
def before_first_request():
    print('before_first_request')
​
# 在每一次请求都会执行
# 例子: 可以在这里做权限校验操作,比如说某用户是黑名单用户,黑名单用户登录系统将遭到拒绝访问,可以使用
# before_request进行权限校验
@app.before_request
def before_request():
    print('before_request

Read more

flask 中上下文问题


在 falsk 中 使用多线程必定要定义一个函数

如果该函数有用到上下文会因为上下文问题报错

解决方法:

# 在配置类中引入改函数
with app.app_context()
from apps.app.app_views import task

但是因为

函数中引入了其他函数以及g 变量 又会导致 上下文问题:

解决方法: 不使用了 直接传参

Read more

python项目接入celery方案


Flask项目接入celery方案

python 项目中使用常celery 做函数异步,提高接口可用性以及并发量,本文档主要整理 Flask项目中接入celery的方案

版本兼容性

Celery version 5.0.5 runs on,

-----on 16 Dec 2020

  • Python (3.6, 3.7, 3.8)

框架兼容性

框架 插件
Django not needed
Pyramid pyramid_celery
Pylons celery-pylons
Flask not needed
web2py web2py-celery
Tornad

Read more

Paramiko 远程连接


简介

ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。

有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。

由于paramiko属于第三方库,所以需要使用如下命令先行安装

pip3 install paramiko

  

Paramiko介绍

paramiko包含两个核心组件:SSHClient和SFTPClient。

  • SSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装,该类封装了

Read more

python logging 模块


python logging 模块

日志输出

logging 为python 内置模块而所有关于与日志相关的其他模块也是基于它的

日志分级

日志有一个等级概念方便我们查看使用是分组:

debug :仅开发中使用

info:正常信息输出

warning :警告-可能是一些不规范的操作

error :错误-影响到了程序正常运行

critical:严重错误-程序可能因此崩溃

输出到控制台

import logging

logging.debug(" debug log.")
logging.info("info log.")
logging.warnin

Read more

pyhton 内置函数


[TOC]

dir 函数 --- 当前命名空间查看

不带参数时,返回当前当前命名空间的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。

想要获取模块的所包含的方法,可以直接使用dir这个函数

getattr -- 获取对象属性值

获取对象属性值 key 以字符串形式传入 和一般dir 连用

正常情况下我们是知道对象属性的,所以用A.a 形式,但在一些元编程或者框架构建方向往往是不知道传入对象有什么属性的,用这个方法可以得到对象属性加以利用

pkgutil

如果我要获取包中所有模块,直接使用dir 并没有获取

import os
import importlib


de

Read more

python 时间处理


python 时间处理

>

时间字符串

“YYYY-mm-dd HH:MM:SS ” ---> "2019-09-05 12:15:52"

时间字符串:不同语言对时间交互采用统一的时间字符串格式

时间作为生活中常见的对象,python 中有对应的包和数据类型来处理

为什么不只是字符串,因为时间是可以计算的,而字符串不行,

time

对人不友好的时间模块

休眠和时间戳

import time
time.sleep(5)# 程序休眠

In [9]: time.time()
Out[9]: 1602748716.9383907 # 返回当前时间的时间戳(1970纪元后经过的浮点秒数)

Read more

python 实现鞋带算法


from pprint import pprint

point_list = [(0, 0), (1, 0), (1, 1), (0, 1)]

def shoelace_func(point_list):

# todo 数据校验
length = len(point_list)
result = 0
for i in range(length):
    if i == length - 1:
        result += (point_list[i][0] * point_list[0][1] - point_list[i][1] * point_list[0][0])
    els

Read more

Anaconda


Anaconda 作为环境-包管理工具

地址 :https://www.anaconda.com/

优势: 解释器版本切换方便,并且可以兼容pip 自带很多科学计算库

缺点:比较大 500M左右 conda的库安装使用不如pip 全面

建议: conda配合 pip 使用 或者安装minianaconda 只有60M左右

对比 virtualenv 可以切换解释器版本比较好 但没那么轻量

安装后会默认使用conda环境也可以取消

conda config --set auto_activate_base false

命令

1、首先在所在系统中安装Anaconda。可以打开命令行输入cond

Read more