机器学习介绍
1 机器学习的定义
机器学习是人工智能的一个子领域,研究如何让计算机系统利用数据和经验,来不断改善和优化自身的性能。
其核心思想是通过算法和模型让计算机从数据中学习,而不是通过明确的编程规则来执行任务。
2 机器学习的分类
机器学习的主要分支有监督学习、无监督学习、半监督学习、强化学习、深度学习等。
根据学习方式:
监督学习(Supervised Learning)
无监督学习(Unsupervised Learning)
半监督学习(Semi-supervised Learning)
强化学习(Reinforcement Learning)
根据学习任务:
分类(Classification)
回归(Regression)
聚类(Clustering)
降维(Dimensionality Reduction)
它们之间的关系如图所示:
graph LR
A[机器学习] --> B[监督学习]
A --> C[无监督学习]
B --> D[半监督学习]
C --> D[半监督学习]
A -- ...
Python
未读datetime
datetime
模块提供了处理日期和时间的类。它支持日期、时间、时区等操作。
1 获取日期和时间
import datetime
def get_time(delta, unit, hours_offset=8):
"""
:param delta: delta time
:param unit: options: 'minutes', 'hours', 'days' or 'seconds' or 'none'
:param hours_offset: East 8 time zone offset (Default value = 8)
"""
# 创建东八区时区对象,偏移量为8小时
tz_east_8 = datetime.timezone(datetime.timedelta(hours=hours_offset))
# 获取当前时间
now = datetime.datetime.now(tz_east_8)
# 计算未来时间
if unit == "none":
...
Python
未读qrcode 是一个用于生成二维码的 Python
库。它可以轻松地将文本、URL 或其他数据编码为二维码图像。
1 安装
pip install qrcode
2 使用
import qrcode
# 数据
download_link = "https://example.com/download"
# 创建二维码对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
# 添加数据到二维码
qr.add_data(download_link)
qr.make(fit=True) # 自动调整二维码大小以适应数据
# 创建二维码图片
qr_image = qr.make_image(fill_color="black", back_color="white")
# 保存二维码图片
# qr_image.save("qr_code.png")
# 保存为webp格式
qr_image. ...
数据库
1. MySQL
用于存储网站数据
1.1 数据库操作
查看所有数据库
SHOW DATABASES;
创建数据库
CREATE DATABASE xxxxx DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
删除数据库
DROP DATABASE xxxxx;
进入数据库
USE xxxxx;
查看数据库下的数据表
show tables;
1.2 数据表操作
创建数据表
例auth
create table auth(
id int primary key auto_increment not null,
username varchar(255) not null,
password varchar(255) not null,
email varchar(20) not null,
user_auth_token varchar(255),
expires datetime
)default charset=utf8;
查看数据表结构
desc xxxx;
查看数据表 ...
Flask建站教程
仅针对宝塔面板的建站教程。
建站类型
静态资源站选择HTML项目
有可执行文件的选择对应的项目,如PHP项目、Node项目、Python项目、Java项目、Go项目、其他项目
非静态资源站,也没有可执行文件的选择纯静态PHP项目,可以配置反向代理等
建站通用配置
SSL
Let’s Encrypt 证书
DNS 验证-手动解析-自动组合泛域名
按照提示修改对应的 CloudFlare 的 DNS 解析
验证即可
Nginx
Nginx 包含反向代理等配置,可以在宝塔面板中配置,仅说明server部分。
Nginx
server通常包含基本配置、日志配置、Location块、反向代理、HTTPS配置、重定向、缓存配置等
关键结构如下:
server {
基础配置
Location块-用于匹配请求的路径,并定义其处理方式-例如自定义可以访问的目录
反向代理-其实可以看做特殊的Location块
}
具体步骤
环境准备
安装Python
准备requirements.txt
域名需要先在CloudFlare中解析
配 ...
网站搭建
未读Mailgun用户手册
个人信息界面请参考Mailgun面板
仅介绍http接口的使用,不涉及smtp协议。 更多信息请参考官方文档
2. 发送邮件
2.1 发送基本文本
curl -s --user 'api:YOUR_API_KEY' \
https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages \
-F from='Excited User <postmaster@YOUR_DOMAIN_NAME>' \
-F to=recipient-1@example.com \
-F to=recipient-2@example.com \
-F subject='Hello there!' \
-F text='Testing some Mailgun awesomeness!'
2.2 以文本和 HTML 版本发送
...
1 前端
1.1 id和name的区别
id
在一个HTML文档中,每个元素的id属性必须是唯一的。这意味着同一个页面上不能有两个元素具有相同的id值。
id属性主要用于JavaScript和CSS。在JavaScript中,你可以使用document.getElementById()来获取具有特定id的元素。在CSS中,你可以使用#后跟id值来指定样式规则应用于哪个元素。
id属性还可用于创建页面内的链接锚点。通过在URL后添加#和元素的id,可以直接跳转到页面上具有该id的元素。
name
name属性主要用于HTML表单元素。当表单提交时,name属性的值作为提交数据的键,元素的值作为提交数据的值。
2 后端
2.1 获取post数据
使用request.json.get(‘time’) 如果发送的是JSON数据
使用request.form.get(‘time’) 如果发送的是表单数据
使用request.args.get(‘time’) 如果发送的是URL参数
3 综合
3.1 目录问题
在后端使用的是python
“/”: 指的是系统根目录,即磁盘根目录
“./” ...
Python
未读requests
requests 是一个用于发送 HTTP 请求的 Python
库。它提供了简单易用的 API,可以轻松地与 Web 服务进行交互。 它支持
GET、POST、PUT、DELETE 等多种 HTTP 方法,并且可以处理
Cookies、会话、文件上传等常见的 Web 操作。
1 安装
pip install requests
2 使用
2.1 GET 请求
import requests
url = "https://api.example.com/data" # 替换为实际的 API URL
response = requests.get(url)
response_time = response.elapsed.total_seconds() # 获取响应时间
if response.status_code == 200:
data = response.json() # 将响应内容解析为 JSON 格式
print(data)
else:
print(f"请求失败,状态码:{response.status_code& ...
Linux
未读创建一个启动器(.desktop文件)
将此文件保存到 ~/.local/share/applications/ 目录下
空白文件
[Desktop Entry]
Version=1.0
Type=Application
Name=
Icon=
Exec=" " %f
Comment=
Keywords=;
Categories=;
Terminal=false
StartupWMClass=
StartupNotify=true
示例
[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm Professional Edition
Icon=/home/xx/software/pycharm-2023.2.4/bin/pycharm.svg
Exec="/home ...
Android 主线程(UI线程)
本文介绍了Android主线程(UI线程)的概念,以及如何在主线程上执行操作。
主线程(UI线程)
在Android应用中,主线程是负责管理用户界面的线程。所有的UI更新(如设置文本视图的文本、更改视图的可见性等)都必须在这个线程上执行。
这是因为Android的UI工具包不是线程安全的,所以从其他线程直接操作UI可能导致应用崩溃或不可预见的行为。
后台线程(非UI线程)
用于执行耗时操作,如网络请求、数据库操作等,以避免阻塞主线程。在主线程上执行这些耗时操作会导致应用无响应。
数据处理和转换
写入或读取文件(非UI操作)
发送网络请求(如果有特殊的实现,需要在特定线程上执行)
记录或分析数据
为什么需要在主线程上执行UI操作?
如果在后台线程上直接更新UI,可能会遇到以下问题:
应用崩溃:由于Android
UI组件不支持从非UI线程访问,直接在后台线程上操作UI可能会导致应用崩溃。
不一致和不可预测的行为:UI可能不会按照预期更新,或者完全不更新。
如何在主线程上执行操作?
在Android中,有几种方法可以确保代码在主线程上执行
1 r ...





