HTTPie(发音为aitch-tee-tee-pie)是一个命令行HTTP客户端。其目标是使与Web服务的CLI交互尽可能人性化。它提供了一个简单的http命令,允许使用简单自然的语法发送任意HTTP请求,并显示彩色输出。HTTPie可用于测试,调试以及通常与HTTP服务器交互。

HTTPie官方文档

windows下安装

pip install --upgrade httpie

HTTPie的简单使用

一个完整的请求语句的大概样子

http [选项(flags)] [方法] URL [查询字符串/数据字段/首部字段]

HTTPie数据语法

类型 符号 示例
URL参数 == param==value
首部字段 : Name:value
数据字段 = field=value
原生JSON字段 := field:=json
表单上传字段 @ field@dir/file

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下载文件
$ http --download www.jb51.net/my_file.zip

# 提交表单
$ http -f POST www.jb51.net name='Dan Nanni' comment='Hi there'

# HTTPie的默认数据类型为JSON格式的
$ http PUT example.org name=John email=john@example.org

# 使用代理
$ http --proxy=http:http://10.10.1.10:3128 --proxy=https:https://10.10.1.10:1080 example.org

# 定制请求头
$ http www.test.com User-Agent:Xmodulo/1.0 Referer:http://www.imike.me MyParam:Foo

放着先。。。。。。。。。占个位

最近在弄一个东西,基本的功能已经弄好了,现在想再扩展一起其他功能,但这样势必会改动原有代码,我又不想破坏原有的代码逻辑,方便以后查看。记得Git有个分支工作流可以很好的满足我的需求(๑•̀ㅂ•́)و✧。emmm,很久没发文了,record一下吧。(ノへ ̄、)

使用到的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
$ git branch # 显示所有本地分支
$ git branch <new branch> # 创建新分支
$ git checkout <branch> # 切换到指定分支
$ git branch -d <branch> # 删除本地分支
$ git push --set-upstream origin <branch> # 将本地分支与远程分支关联
$ git push origin --delete <branch> # 删除远程分支

$ git tag -n # 列出所有本地标签以及相关信息
$ git tag <tagname> # 基于最新提交创建标签
& git tag <tagname> -m "备注信息" # 基于最新提交创建含备注信息的标签
$ git tag -d <tagname> # 删除标签
$ git push orign <tagname> # 将指定信息推送到远程仓库
$ git push --tags # 推送所有标签到远程仓库

操作~操作

https://img.vim-cn.com/00/950a7bad9cc5835194268fce6d40a444b7cfcc.png

emmm,顺便试试tag

https://img.vim-cn.com/a4/26dbcd8ed54643c057193aa14d15ade7ef2358.png

Git

emmm,闲来无事,打算了解下神奇vim(用来zhuangbi)。在终端操作很帅(ˉ▽ ̄~)~~!
什么是vim??Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

vi/vim的使用

vi/vim有三种模式:

  • 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。刚启动时就是这个模式。
  • 输入模式:正常的文本录入。
  • 末行模式:保存或退出文档,以及设置编辑环境。又可成为底线命令模式。

常见关系:

  • 一对多关系
  • 多对一关系
  • 多对多关系
  • 一对一关系

一对多关系(一个作者,多篇文章)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
## 一对多关系,单作者-多文章,外键不可少
## 外键(ForeignKey)总在多的那边定义,关系(relationship)总在单的那边定义

class Author(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(70), unique=True)
phone = db.Column(db.String(20))
# articles为关系属性(一个集合,可以像列表一样操作,在关系的出发侧定义
## relationship()函数的第一个参数为关系另一侧的模型名称(Article)
articles = db.relationship('Article')

class Article(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(15), index=True)
body = db.Column(db.Text)
# 传入ForeignKey的参数形式为:"表名.字段名"
## 模型类对应的表名由Flask-SQLAlchemy生成,默认为类名称的小写形式,多个单词通过下划线分隔
author_id = db.Column(db.Integer, db.ForeignKey('author.id')) #

# 外键字段(author_id)和关系属性(articles)的命名没有限制
## 建立关系可通过操作关系属性进行
>>>shansan = Author(name="shansan")
>>>hello = Article(title="Hello world !")
>>>boy = Article(title="Hello Boy !")
>>>db.session.add(shansan) # 将创建的数据库记录添加到会话中
>>>db.session.add(hello)
>>>db.session.add(boy)
>>>shansan.articles.append(hello) # 操作关系属性
>>>shansan.articles.append(boy)
>>>db.session.commit()

请求钩子(Hook)

在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:在请求开始时,建立数据库连接;在请求结束时,指定数据的交互格式。为了让>每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。通过请求钩子,我们可以对请求进行预处理(preprocessing)和后处理>(postprocessing)。

Flask的请求钩子通过装饰器实现,每个钩子可以注册任意多个处理函数,默认的五种请求钩子如下:

钩子 说明
before_first_request 注册一个函数,在处理请求前运行
before_request 注册一个函数,在处理每个请求前运行
after_request 注册一个函数,如果有未处理的一场抛出。会在每个请求结束后运行
teardown_request 注册一个函数,即使有未处理的异常抛出,会在每个请求介绍后执行。如果发生异常,会传入异常对象作为参数注册到函数中
after_this_request 在视图函数内注册一个函数,在这个请求结束后运行

如何将本地项目推送到Github

Tip:在本地要安装好Git,官网:https://git-scm.com/

kzni4K.png

一个学习Git的好地方:https://try.github.io/

在线闯关实战,边练边学的好地方:https://learngitbranching.js.org/

方法一:使用https推送

1
2
3
4
5
6
7
8
9
10
11
12
13
# 步骤
# 1.创建一个目录
mkdir Test
# 2.将当前目录变为git管理仓库
git init
# 3.将文件添加到版本库,这里将目录下的所有文件都添加进去了
git add .
# 4.告诉git将文件提交到仓库
git commit -m "first-commit"
# 5.将当前仓库与远程仓库关联
git remote add orign 远程仓库的https地址 # eg: git remote add https://github.com/ssmath/Test.git
# 6.将仓库内master分支的所有内容推送到远程仓库,这里会使用到Github的账号密码
git push -u orign master
Git

让vscode使用Pipenv工作环境

1、查看Pipenv的位置

1
2
3
4
# 先激活Pipenv环境
pipenv shell
# 获取当前虚拟环境的位置
pipenv --venv

2、打开setting.json配置文件

  • Ctrl+Shift+P,输入settings,选择Open Settings(JSon)
  • 将之前得到的Pipenv环境路径添加进去

    “python.venvPath”: “C:\Users\Algorithm\.virtualenvs”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
C:printf("Happy New Year");
C++ : cout<<"Happy New Year";
Objectivec: NSLog(@"Happy New Year!");
QBasic : Print "Happy New Year"
Asp : Response.Write "Happy New Year"
PHP : echo "Happy New Year";
Ruby: puts "Happy New Year!"
JavaScript: alert("Happy New Year")
VBScript:MsgBox "Happy New Year"
JavaScript: document.write("Happy New Year")
JavaScript: console.log(' Happy New Year');
xml <TextView android:text="Happy New Year! " />
Delphi: ShowMessage('Happy New Year!');
VB: Msg("Happy New Year!")
VC: MessageBox("Happy New Year!");
shell: echo Happy New Year
perl: print 'Happy New Year'
java: System.out.println("Happy New Year");
LISP:(format t "Happy New Year!~%")
powerBuilder:messagebox("Happy New Year")
C#:System.Console.WriteLine("Happy New Year!")
COBOL:DISPLAY 'Happy New Year!'
Python:print("Happy New Year!")
aswing:JOptionPane.showMessageDialog("happy","Happy New Year!")
flex:Alert.show("Happy New Year!");
Clojure: (println "Happy New Year")
verilog/systemverilog/e $display("Happy New Year")
as:trace("Happy New Year!");

HTML(超文本标记语言)

HTML标签不区分大小写。

HTML属性

  • ID属性指定一个标识符,用于唯一标识页面元素,这些标识符主要供Javascript和CSS使用
  • class属性是一个全局属性,可用于建立元素编组。可以给多个元素指定相同的class属性,以便在CSS或Javascript中将这些元素作为一个编组来引用它们
  • style属性用于定义标签的样式。任何标签中都可以指定属性style。使用style属性可以为标签指定一个或多个样式规则, 在style定义多条规则的方法是用分号将他们分开