python
文章平均质量分 77
摩力克
拥有超过15年开发经验,精通网络通信、网络安全和Python开发,希望通过分享和大家共同进步。
展开
-
Qt模态界面设置setWindowModality禁止其他界面响应
一、模态与非模态模态:启动模态界面时,例如弹出对话框强制用户从其他正在进行的业务中聚焦到当前对话框,除了该对话框整个应用程序窗口都无法接受用户响应,无法切换界面,无法切换当前Qt应用。这可以保证用户按照自己设计的操作逻辑进行动作。只有关闭和退出该模态界面,才可以访问本应用程序的其他界面和功能。非模态:与模态相反,默认状态为非模态,即可以随意切换,可以在同一应用下的各个窗口界面任意切换。...转载 2019-10-29 19:12:22 · 2214 阅读 · 0 评论 -
Python中list的复制及深拷贝与浅拷贝探究
在Python中,经常要对一个list进行复制。对于复制,自然的就有深拷贝与浅拷贝问题。深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这两个list在内存中是否储存在同一个区域,这也是区分深拷贝与浅拷贝的重要依据。接下来我们就针对Python中list复制的几种方法,来探究一下其是属于深拷贝还是浅拷贝。弄清楚这个问题,有助于我们在编程...转载 2019-10-21 10:33:02 · 333 阅读 · 0 评论 -
tornado系列五:cookie安全
1、通过签名防止cookie篡改import tornado.httpserverimport tornado.ioloopimport tornado.webimport tornado.optionsfrom tornado.options import define, optionsdefine("port", default=8000, help="run on the原创 2016-05-06 16:08:32 · 4390 阅读 · 0 评论 -
tornado系列:用cookie进行用户验证
在本节中,我们将建立一个应用,询问访客的名字,然后将其存储在安全cookie中,以便之后取出。后续的请求将认出回客,并展示给她一个定制的页面。你将学到login_url参数和tornado.web.authenticated装饰器的相关知识,这将消除在类似应用中经常会涉及到的一些头疼的问题。1 示例:欢迎回来¶在这个例子中,我们将只通过存储在安全cookie里的用户名标识一个人。当某人转载 2016-05-06 16:54:09 · 9636 阅读 · 0 评论 -
Django系列一:Django的安装
Linux 上安装 Djangoyum 安装方法以下安装位于 Centos Linux 环境下安装,如果是你的 Linux 系统是 ubuntu 请使用 apt-get 命令。默认情况下 Linux 环境已经支持了Python。你可以在终端输入Python命令来查看是否已经安装。Python 2.7.3 (default, Aug 1 2012, 05:14:39)转载 2016-05-09 09:07:32 · 374 阅读 · 0 评论 -
Django系列二:Django 创建第一个项目
Django 创建第一个项目本章我们将介绍Django 管理工具及如何使用 Django 来创建项目,第一个项目我们以 HelloWorld 来命令项目。Django 管理工具安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.py。我们可以使用 django-admin.py 来创建一个项目:我们可以来看下django-adm转载 2016-05-09 09:51:08 · 751 阅读 · 0 评论 -
Django系列三:Django 模板
jango 模板在上一章节中我们使用 django.http.HttpResponse() 来输出"Hello World!"。该方式将数据与视图混合在一起,不符合Django的MVC思想。本章节我们将为大家详细介绍 Django 模板的应用,模板是一个文本,用于分离文档的表现形式和内容。模板应用实例我们接着上一章节的项目将在 HelloWorld 目录底下创建转载 2016-05-09 11:51:10 · 508 阅读 · 0 评论 -
Django系列四:Django 模型
Django 模型Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。Django 为这些数据库提供了统一的调用API。 我们可以根据自己业务需求选择不同的数据库。MySQL 是 Web 应用中最常用的数据库。本章节我们将以 Mysql 作为实例进行介绍。你可以通过本站的 MySQL 教程 了解更多Mysql的基础转载 2016-05-09 13:56:57 · 381 阅读 · 0 评论 -
Django系列六:Django Admin 管理工具
Django Admin 管理工具Django 提供了基于 web 的管理工具。Django自动管理工具是django.contrib的一部分。你可以在项目的 settings.py 中的INSTALLED_APPS看到它:INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth',转载 2016-05-09 14:41:17 · 396 阅读 · 0 评论 -
Tornado源码分析之http服务器篇
一. Tornado是什么?Facebook发布了开源网络服务器框架Tornado,该平台基于Facebook刚刚收购的社交聚合网站FriendFeed的实时信息服务开发而来.Tornado由Python编写,是一款轻量级的Web服务器,同时又是一个开发框架。采用非阻塞I/O模型(epoll),主要是为了应对高并发 访问量而被开发出来,尤其适用于comet应用。转载 2016-04-29 17:14:01 · 462 阅读 · 0 评论 -
tornado系列一:tornado基础
1、tornado是什么tornado是一个python编写的强大的可扩展的web服务器,它采用非阻塞的socket,可以高性能处理大并发长连接场景下的web应用。2、tornado如何部署tornado在 linux系统中天然支持。并且在python2.6以上的版本中,tornado代码都包含在python标准库中,在使用tornado时,除了python标准库之外,不需要安原创 2016-05-04 14:05:08 · 1168 阅读 · 0 评论 -
tornado系列二:模板
1、在模板中使用占位符 在模板中,使用 {{占位符 }} 来表示要填充的内容,其中的占位符在模板调用时定义并进行实际的填充,例如: Poem Maker Pro Your poem Two {{roads}} diverged in a {{wood}}, and I—I took the one less travelle原创 2016-05-04 15:55:00 · 1415 阅读 · 0 评论 -
tornado系列三:模板扩展
1、模板嵌套python模板支持嵌套:1.1 使用include进行模板嵌套html> <% include file="inc_header.html" %> <% include file="index_body.html" %> <% include file="inc_footer.html" %>html>1.2原创 2016-05-05 09:57:59 · 5099 阅读 · 0 评论 -
tornado的mysql数据库操作
torndb是一个轻量级的基于MySQLdb封装的一个模块,从tornado3.0版本以后,其已经作为一个独立模块发行了。torndb依赖于MySQLdb模块,因此,在使用torndb模块时,要保证系统中已经有MySQLdb模块。torndb模块仅提供了数据库的连接和表项操作指令,没有提供数据库的创建等操作命令。1、torndb模块的安装:1.1 安装mysql1.2原创 2016-05-05 14:52:32 · 7271 阅读 · 0 评论 -
python使用mongo数据库
1、mongo 数据库的安装(1) 安装setuptools(2)安装python的开发版yum install python-devel(3)下载mongo模块pymongo-3.2.2.tar.gz,解压缩,后执行python setup.py install(4)进入python环境后执行下列语句无报错,则说明安装成功>> import pymongo原创 2016-05-05 15:39:18 · 837 阅读 · 0 评论 -
tornado系列四:web请求
1、同步请求import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webimport tornado.httpclientimport urllibimport jsonimport datetimeimport timefrom tornado.optio原创 2016-05-06 09:59:58 · 863 阅读 · 0 评论 -
用tornado实现websocket
import tornado.webimport tornado.websocketimport tornado.httpserverimport tornado.ioloopimport tornado.optionsfrom uuid import uuid4class ShoppingCart(object): totalInventory = 10 callb原创 2016-05-06 11:58:07 · 2861 阅读 · 0 评论 -
Python yield 使用浅析
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机程序输出斐波那契數列的前转载 2016-05-06 10:27:11 · 352 阅读 · 0 评论 -
Django系列七:Django Nginx+uwsgi 安装配置
在前面的章节中我们使用 python manage.py runserver 来运行服务器。这只适用测试环境中使用。正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttpd等,本文将以 Nginx 为例。安装基础开发包Centos 下安装步骤如下:yum groupinstall "Development tools"转载 2016-05-09 15:31:43 · 468 阅读 · 0 评论 -
uWSGI详解
WSGI是什么?WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。WSGI 的官方定义是,the Python We转载 2016-05-09 17:49:49 · 59719 阅读 · 0 评论 -
使用pyinstaller打包pyqt文件时出错
出错信息如下:FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'C:\\Users\\xxxx\\AppData\\Roaming\\pyinstaller\\bincache00_py37_64bit\\pyqt5\\qt\\plugins\\iconengines\\qsvgicon.dll'解决方法:(1)找到pyinstall...原创 2019-10-11 11:44:40 · 1477 阅读 · 0 评论 -
解决peewee的MySQL长连接问题
MySQL的默认长链接只能保持8小时,超过后就会自动断开。在peewee中如何维持长连接呢?解决方法比较晦涩,需要自定义一个支持重试的类,然后自定义一种RetryMySQLDatabase混入类from peewee import *from peewee import __exception_wrapper__class RetryOperationalError(obje...原创 2019-09-05 17:41:27 · 2680 阅读 · 0 评论 -
python 本地解析IP地址所属地区信息
1、安装库pip install geoip22、下载数据资源https://dev.maxmind.com/geoip/geoip2/geolite2/我们可以选择CSV格式文件,也可以选择MaxMind DB格式进行处理。这些文件会在每个星期二进行更新,其中的city文件包含城市信息,Country文件仅能定位到国家,可以根据需求自行下载。由于IP申请每时每刻...原创 2019-08-28 10:40:36 · 2235 阅读 · 0 评论 -
python下载文件的三种方法
python下载文件的三种方法Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块。当然你也可以利用ftplib从ftp站点下载文件。此外Python还提供了另外一种方法requests。下面来看看三种方法是如何来下载zip文件的:方法一: from urllib import request prin...转载 2019-08-28 10:12:50 · 1585 阅读 · 0 评论 -
Python3使用requests模块显示下载进度
一、配置request1. 相关资料请求关键参数:stream=True。默认情况下,当你进行网络请求后,响应体会立即被下载。你可以通过 stream 参数覆盖这个行为,推迟下载响应体直到访问 Response.content 属性。tarball_url = 'https://github.com/kennethreitz/requests/tarball/master'r = req...转载 2019-08-28 10:09:41 · 1180 阅读 · 0 评论 -
Pyecharts V1全新版本使用教程
前言pyecharts是一款将python与echarts结合的强大的数据可视化工具,由于v0.5.x 和 V1 间不兼容,导致很多代码不可复用,旧版本将不再维护,本文将简单介绍新版本的使用方法。Github地址https://github.com/pyecharts/pyecharts使用教程:https://pyecharts.org/#/zh-cn/quickstart安装...转载 2019-08-15 17:25:07 · 11314 阅读 · 0 评论 -
关于No module named 'PyQt5.QtWebEngineWidgets'问题
注意:pyQt5.11及更高版本已经不再包含WebEngine模块,如果要用PyQtWebEngine模块,则需要单独进行安装,或者回退pyQt5到v5.10或更早的版本。方法一:pip install PyQtWebEngine方法二:pip install pyqt5==5.10.1...原创 2019-07-30 11:51:34 · 4768 阅读 · 0 评论 -
python-pip安装缓慢问题
经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的烦恼。网上有很多可用的源,例如豆瓣:http://pypi.douban.com/simple/清华:https://pypi.tuna.tsinghua.edu.cn/simple最近使用得...转载 2019-07-30 11:44:06 · 373 阅读 · 0 评论 -
pandas如何将多个DataFrame写入同一个excel工作簿中
日常的数据分析工作中,很多时候我们会通过excel的形式将分析结果展示给领导或同事。前面一些文章我们也简单提到过pandas与excel的i/o问题,今天我们再深入一步,如何将多个分析后的结果,也就是多个DataFrame,写入同一个excel工作簿中呢?直奔主题。先导入包,然后用字典构建一个测试用的DF:然后让它繁衍一下,复制几个同样的DF出来待用:...转载 2019-04-03 17:09:23 · 44353 阅读 · 0 评论 -
如何更快更高效的利用pandas读取多个sheet的excel文件?
我们知道pandas的读取excel文件的常规方式是pd.read_excel(file, sheetname),我想很多人都是用这种常规的方式进行读取。其实,sheetname是可以是数字的,代表每一个sheet的排序编号。我们用python运行效率分析工具来看一下不同的模式下,他们的执行速度分别是怎么样的?import timeitimport pandas as pdi...转载 2019-04-03 17:05:35 · 11553 阅读 · 0 评论 -
Python的内存管理
语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。这里以Python语言为例子,说明一门动态类型的、面向对象的语言的内存管理方式。对象的内存使用赋值语句是语言最常见的功能了。但即使是最简单的赋值语句,也可以很有内涵。Python的赋值语句就很值得研究。a = 1整数1为一个对象。而a...转载 2019-04-03 09:42:20 · 117 阅读 · 0 评论 -
Python爬虫突破封禁的6种常见方法
在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析,提取需要的信息。本文假定读者已经了解如何用代码来抓取一个远程的 URL,并具备表单如何提交及 JavaScri...转载 2019-04-02 16:45:57 · 7100 阅读 · 0 评论 -
python写入csv文件中文乱码解决方案
问题最近处理数据时需要将txt文件转化成csv格式,txt中正常存储显示的中文在写入到csv文件时变成了乱码,文件的编码未能正确处理中文,需要在写入csv文件时指定编码。解决方法csvfile = file('data.csv', 'wb')# Display chinese correctlycsvfile.write(codecs.BOM_UTF8)spamwriter = ...转载 2019-04-04 19:31:06 · 8869 阅读 · 0 评论 -
使用Pandas对Excel文件进行合并或分割
(1)将多个数据写入一个xlsx的多个Sheet:import pandas as pd #读取两个表格data1=pd.read_excel('文件路径')data2=pd.read_excel('文件路径') #将两个表格输出到一个excel文件里面writer=pd.ExcelWriter('D:新表.xlsx')data1.to_excel(writer,sheet_...原创 2019-04-04 19:24:26 · 2508 阅读 · 0 评论 -
使用Python解决CSV文件中中文乱码的问题
如果CSV文件中的中文是乱码,通常该CSV文件的编码格式是UTF8的.为了中文显示正常,需要将CSV文件的编码格式转换为GBK格式.代码:import pandas as pd#utf编码格式的csv文件中的中文一般会是乱码,这时需要把文件格式另存为gbk格式def csv_utf_2_gbk(srcPath): try: data=pd.DataFra...原创 2019-04-04 16:08:52 · 7583 阅读 · 0 评论 -
Python使用UUID库生成唯一ID
概述: UUID是128位的全局唯一标识符,通常由32字节的字符串表示。 它可以保证时间和空间的唯一性,也称为GUID,全称为: UUID —— Universally Unique IDentifier Python 中叫 UUID GUID —— Globally Unique IDentifier转载 2016-05-06 09:49:45 · 477 阅读 · 0 评论 -
python str和repr的区别
尽管str(),repr()和``运算在特性和功能方面都非常相似,事实上repr()和``做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象。但str()则有所不同,str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值,但很适合用于print语句输出转载 2016-05-06 06:52:47 · 367 阅读 · 0 评论 -
python encode和decode函数说明
字符串编码常用类型:utf-8,gb2312,cp936,gbk等。Python中,我们使用decode()和encode()来进行解码和编码在python中,使用unicode类型作为编码的基础类型。即 decode encodestr ---------> unicode --------->stru = u'中文' #转载 2016-05-11 16:01:42 · 3324 阅读 · 0 评论 -
pyinotify简单实用(用于文件系统监控)
Pyinotify是一个Python模块,用来监测文件系统的变化。 Pyinotify依赖于Linux内核的功能—inotify(内核2.6.13合并)。 inotify的是一个事件驱动的通知器,其通知接口通过三个系统调用从内核空间到用户空间。pyinotify结合这些系统调用,并提供一个顶级的抽象和一个通用的方式来处理这些功能。pyinotify其实就是通过调用系统的inotify来实现转载 2016-05-11 15:51:00 · 3054 阅读 · 0 评论 -
Python的functools模块
这个模块提供了3个有趣的函数,这里介绍下其用法。首先是partial函数,它可以重新绑定函数的可选参数,生成一个callable的partial对象:[python] view plain copy print?>>> int('10') # 实际上等同于int('10', base=10)和int('10', 10) 10转载 2016-05-11 11:52:08 · 357 阅读 · 0 评论