分类目录归档:Python

Django关于emoji😆表情存入mysql时的错误


使用Django搭建了一个简单的服务器,用于iOS客户端的服务端;今天在上传数据时总是失败,通过与服务端联调找到问题; 服务端报错内容:

(1366, "Incorrect string value: '\\xF0\\x9F\\x98\\x862' for column 'describe' at row 1")

通过一些网友的分享找到了原因:

我们可以看到错误提示中的字符\\xF0\\x9F\\x98\\x86 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范)。正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实际上是它对应的是智能手机输入法中的表情。那为什么会报错...

Read more

Python迭代器(Iterator)


概述

迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

  • 延迟计算或惰性求值 (Lazy evaluation)

    迭代器不要求你事先准备好整个迭代过程中所有的元素。仅仅是在迭代至某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。这个特点使得它特别适合用于遍历一些巨大的或是无限的集合。

  • 可迭代对象

    迭代器提供了一个统一的访问集合的接口。只要是实现了iter()或getitem()方法的对象,就可以使用迭代器进行访问。

  序列:字符串、列表、元组

  非序列:字典、文件

  自定义类:用...

Read more

解决Python3 控制台输出InsecureRequestWarning的问题


问题:

使用Python3 requests发送HTTPS请求,已经关闭认证(verify=False)情况下,控制台会输出以下错误:

InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings

解决方法:

在代码中添加以下代码即可解决:

  • Python3添加如...

Read more

Mac上 Python安装Pillow问题


问题

安装 pip install Pillow==3.3.0 的时候出错

ValueError: zlib is required unless explicitly disabled using --disable-zlib, aborting

原因是pillow在3.0以上的版本需要有依赖库, libjpegzlib

解决方法 :

打开mac的终端, 安装brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

通过brew安装li...

Read more

Mac 爬虫error: chromedriver' executable needs to be in PATH


安装selenium

pip install selenium

Mac 下使用selenium打开一个空的浏览器窗口:

from selenium import webdriver
driver = webdriver.Chrome()

报错:

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

解决...

Read more

Django使用Token


基于Token的身份验证

在实现登录功能的时候,正常的B/S应用都会使用cookie+session的方式来做身份验证,后台直接向cookie中写数据,但是由于移动端的存在,移动端是没有cookie机制的,所以使用token可以实现移动端和客户端的token通信.

验证流程

整个基于Token的验证流程如下:

  1. 客户端使用用户名跟密码请求登录
  2. 服务器收到请求,去验证用户名和密码
  3. 验证成功后,服务端会签发一个Token,再把这个Token发送到客户端
  4. 客户端收到的Token以后可以把它存储起来,比如放在Cookie或LocalStorage里
  5. 客户端每次向服务器发送其他请求的时候都...

Read more