Lane's Blog 随记备查

学,浅而广,可牛B,深而专,可为业,趣乎

Lane's Blog 随记备查

设置 windows

WSL (Ubuntu) 将 Ubuntu 和 Win10 无缝连接起来,让开发人员可以不使用虚拟机,就轻松地在同一个系统中使用 win10 和 Ubuntu,你可以用它代替 Cywin32 和 babun.

  1. 在 win10 的设置中打开更新和安全,打开针对开发人员选项
  2. 然后在程序和功能中打开 Linux 子系统。
  3. 重启计算机,

安装 WSL

Ubuntu 默认 python3.8.5,只能执行 python3 命令,不能 python。

打开应用商店搜索下载 ubuntu 或 wxl

直接在应用商店搜索 ubuntu,推荐选择 20.04 的 ubuntu。

  • 安装过程设置用户名、密码,用户名不能有大写,输入密码时一定记得切换成英文输入,密码输入时看不见是正常的

  • 添加 ubuntu 到快速访问
    如果你需要经常在 win10 资源管理器对 ubuntu 的文件进行操作,那么在 C 盘搜索 rootfs 这个文件夹,这就是 ubuntu 在 win10 上的储存位置。
    将 rootfs 文件夹拖放到资源管理器的快速访问。(你也可以添加其下的 /home/ 你的用户文件夹)

  • 获取权限
    直接在 win10 资源管理器操作 ubuntu 的文件可能是无效的,这是因为 win10 的默认用户并不是超级管理员,对 ubuntu 的权限是只读的。
    你需要取得 rootfs 文件夹的所有权限。(文件夹右键属性→安全;还可以使用 “鼠标管家” 这个软件,添加菜单,管理员取得所有权限)

三种启动方式

微软商店界面启动

阅读全文 »

pyqt5 QTableWidgetItem setFlags () 设置实现

enum Qt::ItemFlag flags Qt::ItemFlags

This enum describes the properties of an item:

Constant Value Description
Qt::NoItemFlags 0 It does not have any properties set.
Qt::ItemIsSelectable 1 It can be selected.
Qt::ItemIsEditable 2 It can be edited.
Qt::ItemIsDragEnabled 4 It can be dragged.
Qt::ItemIsDropEnabled 8 It can be used as a drop target.
Qt::ItemIsUserCheckable 16 It can be checked or unchecked by the user.
Qt::ItemIsEnabled 32 The user can interact with the item.
Qt::ItemIsAutoTristate 64 The item’s state depends on the state of its children. This enables automatic management of the state of parent items in QTreeWidget (checked if all children are checked, unchecked if all children are unchecked, or partially checked if only some children are checked).
Qt::ItemIsTristate ItemIsAutoTristate This enum value is deprecated. Use Qt::ItemIsAutoTristate instead.
Qt::ItemNeverHasChildren 128 The item never has child items. This is used for optimization purposes only.
Qt::ItemIsUserTristate 256 The user can cycle through three separate states. This value was added in Qt 5.5.

Note that checkable items need to be given both a suitable set of flags and an initial state, indicating whether the item is checked or not. This is handled automatically for model/view components, but needs to be explicitly set for instances of QListWidgetItem, QTableWidgetItem, and QTreeWidgetItem.

Note that it is undefined behavior to reimplement QAbstractItemModel::hasChildren to return true for an index if that index has the Qt::ItemNeverHasChildren flag set.

The ItemFlags type is a typedef for QFlags. It stores an OR combination of ItemFlag values.

See also QAbstractItemModel.

所有的 flags 都是 Qt.ItemFlags () 对象,值为整数值。刚开始使用 setFlags () 这个命令时,单独使用 setFlags (Qt.ItemIsEditable) 会发现和内容描述的功能是相反的,如果要开启该功能,需要加上 Qt.ItemIsEnabled,即使用 setFlags (Qt.ItemIsEditable | Qt.ItemIsEnabled) 才能达到描述的功能。默认所有功能开启时 int (table.item (9, 0).flags ()) 值为 63,即包含了 Qt.ItemIsEnabled 在内的向上的所有功能,可转换为二进制编码理解。

阅读全文 »

PySimpleGUI 安装

两种方式:

1. 环境:命令行 pip 或 pycharm 内安装

2. 下载文件 PySimpleGUI.py 并放置在应用程序的文件夹中(PySimpleGUI 是作为单个.py 文件创建的,在当前目录可直接 import)

https://cdn.jsdelivr.net/gh/PySimpleGUI/PySimpleGUI/PySimpleGUI.py

元素简短写法

所有元素都有一个或多个可以使用的较短名称。 例如,Text 元素可以简单地写为 T。Input 元素可以写为 I,Button 可以写为 B。

1
event, values = sg.Window('Window Title', [[sg.T("What's your name?")],[sg.I()],[sg.B('Ok')]]).read(close=True)

运行的 GUI 框架

PySimpleGUI 当前能够在 4 个 Python GUI 框架上运行。 通过 import 语句指定要使用的框架。 更改导入,您将更改基础的 GUI 框架。 对于某些程序,除了 import 语句以外,无需在其他 GUI 框架上运行即可进行其他更改。 在上面的示例中,将导入从 PySimpleGUI 更改为 PySimpleGUIQt,PySimpleGUIWx,PySimpleGUIWeb 将更改框架。(需要另外安装这些包)

阅读全文 »

1.URL

URL 即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档。URL 由协议、主机和端口(默认为 80)以及文件名三部分构成,如:

图片

2.HTTP 具体工作流程

前面已经讲过,HTTP 的工作原理就是一个请求 - 响应交互模型,那当用户从浏览器输入网址到浏览器呈现给用户内容之间的过程到底发生了什么?下面举例来说明:

在用户点击 URL 为 http://www.sxtyu.com/index.html 的链接后,浏览器和 web 服务器执行了以下动作:

  • 浏览器分析超链接中的 URL
  • 浏览器向 DNS 请求解析 http://www.sxtyu.com 的 IP 地址
  • DNS 将解析出来的 IP 地址 202.2.16.21 返回浏览器
  • 浏览器与服务器建立 TCP 链接(80 端口)
  • 浏览器请求文档:GET/index.html
  • 服务器给出响应,将文档 index.html 发送给浏览器
  • 释放 TCP 链接
  • 浏览器显示 index.html 中的内容

图片

3.HTTP 头信息

HTTP 头信息分为了请求头信息和响应头信息,其中,请求头只出现在 HTTP 请求中,请求报头允许客户端向服务端传递请求的附加信息和客户端自身信息;响应头是服务器根据请求向客户端发送的 HTTP 头。

阅读全文 »

pandas

数据库函数

连接数据库

create_engine(‘dialect+driver://username:password@host:port/database’)

dialect – 数据库类型 driver – 数据库驱动选择 username – 数据库用户名 password – 用户密码 host 服务器地址 port 端口 database 数据库

1
engine = create_engine('sqlite:///datastore.db')

数据库文件若存在,则连接;不存在,则新建。

Python f 字符串

Python f 字符串

Python f-string 是执行字符串格式化的最新 Python 语法。 自 Python 3.6 起可用。 Python f 字符串提供了一种更快,更易读,更简明且不易出错的在 Python 中格式化字符串的方式。

阅读全文 »

requests 库

get 请求

1
r = requests.get("https://unsplash.com")

向网站发送了一个 get 请求,然后网站会返回一个 response。r 就是 response。可以在运行的时候查看 r 的 type。

  • get 传递参数请求
1
2
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)

向服务器发送的请求中包含了两个参数 key1 和 key2,以及两个参数的值。实际上它构造成了如下网址:
http://httpbin.org/get?key1=value1&key2=value2

POST 请求

  • 无参数 post 请求:
1
r = requests.post("http://httpbin.org/post")
阅读全文 »

spider.py

1
from bs4 import BeautifulSou

Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,简单来说,它能将 HTML 的标签文件解析成树形结构,然后方便地获取到指定标签的对应属性。

1
2
3
4
5
from configparser import ConfigParser
import pandas as pd
import requests
from bs4 import BeautifulSoup
from sqlalchemy import create_engine
阅读全文 »