pretty相关知识
-
python 小目标6Python day 12 Today we will work with the character strings in Python a little bit. 1.Swap Case The task is to swap cases. Convert all lowercase letters to uppercase letters and vice versa. Example: Pretty -> pRETTY Solution: We are lucky Python has a swapcase Function we can use it directly def swap_case(s): t=.s.swapcase() return t Output: Have a Nice Day hAVE A nICE dAY I am still wo
-
如何使用Ansible 2的API做python开发在ansible1.9的时候,API是一个非常简单的东西。官方说“it's pretty simple”,真是又pretty又simple。import ansible.runner runner = ansible.runner.Runner( module_name='ping', module_args='', pattern='web*', forks=10) datastructure = runner.run()到了ansible2.0以后,是“a bit more complicated”,Oh my,简直让人难受。简洁和灵活是鱼和熊掌。ansible2.0 API怎么用?ansible2.0更贴近于ansible cli的常用命令执行方式,不同
-
git log format默认git log 出来的格式并不是特别直观,很多时候想要更简便的输出更多或者更少的信息,这里列出几个git log的format。 可以根据自己的需要定制。 git log命令可一接受一个--pretty选项,来确定输出的格式. 比如 : 如果我们只想输出hash. git log --pretty=format:"%h" 详细 命令 : '%H': commit hash '%h': abbreviated commit hash '%T': tree hash '%t': abbreviated tree hash '%P': parent hashes '%p': abbreviated parent hashes '%an': author
-
Docker常用指令(操作镜像、操作容器)操作镜像 搜索镜像 docker search [OPTIONS] TERM Options: -f, --filter filter Filter output based on conditions provided --format string Pretty-print search using a Go template --limit int Max number of search results (default 25) --no-trunc Don't truncate output # e.g [root@localhost ~]# docker search nginx --limit 5 NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 9370 [OK] j
pretty相关课程
pretty相关教程
- 3. 查看响应 当查看响应的时候,这里有几种基本的形式:Pretty — JSON/XML 的形式来展示数据,所以可读性比较高;Raw — 纯文本形式;Preview — 在 iframe 中呈现响应结构。对于返回的 HTML 模板展示特别有用;Visualize — 数据可视化,需要手动配置。
- 2. MongoDB 的基本操作 我们来进入 MongoDB 的 bash 模式,来实操一把 Mongodb 数据库。Mongodb 中和 MySQL 有数据库的概念,不过数据库的下一层中,MongoDB 是集合 (Collections),MySQL中是表;在 MongoDB 的集合中。存储的是一系列的文档数据。数据库操作:[root@server2 ~]# mongoMongoDB bash version v4.2.8connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbImplicit session: session { "id" : UUID("4d3a243e-d31e-4b9b-a40b-096a6747c3eb") }MongoDB server version: 4.2.8> show dbs> show dbs 指令是显示所有的数据库,这里没有显示是因为我们在前面的配置中设置需要认证。于是执行如下指令:> use adminswitched to db admin> db.auth('admin', 'shencong1992')1> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GB新建数据库的方式很简单,只需要使用 use 指令即可,不过没有数据时无法使用 show dbs 指令查看,我们可以使用 insert 指令向新建的数据库插入一条指令后再使用 show dbs 即可看到新数据库了:> use scrapy_manualswitched to db scrapy_manual> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GB> db.scrapy_manual.insert({'name': 'scrapy manual'})WriteResult({ "nInserted" : 1 })> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GBscrapy_manual 0.000GB> 接下来删除数据库使用的是 db.dropDatabase() 指令:> use scrapy_manualswitched to db scrapy_manual> db.dropDatabase(){ "dropped" : "scrapy_manual", "ok" : 1 }> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GB> 接下来是集合的操作,MongoDB 中集合类似于 MySQL 中的表。下面来看操作集合的相关指令:> use scrapy_manualswitched to db scrapy_manual> db.createCollection('china_pub'){ "ok" : 1 }> show collectionschina_pub# 创建一个即将删除的集合;capped表示创建固定大小集合,一定要有size参数;max表示最大文档数> db.createCollection("china_pub_delete", {capped: true, size: 6142800, max: 100000}){ "ok" : 1 }> show collectionschina_pubchina_pub_delete# 删除集合的方法直接是db.collections.drop()即可> db.china_pub_delete.drop()true> show collectionschina_pub> 前面我们直接跳过集合使用 insert 插入数据,此时 MongoDB 会创建一个默认的集合:> db.china_pub_default.insert({'name': '创建默认集合'})WriteResult({ "nInserted" : 1 })> show collectionschina_pubchina_pub_default# 删掉这个无用的集合> db.china_pub_default.drop()true> show collectionschina_pub接下来是操作集合中的文档了。我们来简单看下 MongoDB 中关于集合的增删改查操作的相关指令:插入文档数据的方法有以下四个:insert();save();insertOne();insertMany()。> db.test_crud_collections.insert({"name": "zhang shan", "age": "18", "sex": "男"})WriteResult({ "nInserted" : 1 })> db.test_crud_collections.save({"name": "zhang tianai", "age": "22", "sex": "女"})WriteResult({ "nInserted" : 1 })> db.test_crud_collections.insertOne({"name": "li si", "age": "21", "sex": "男"}){ "acknowledged" : true, "insertedId" : ObjectId("5f00877b3a35677ad1cb4069")}> db.test_crud_collections.insertMany([{"name": "lei ju", "age": "27", "sex": "男"}, {"name": "lei kun", "age": "23", "sex": "男"}]){ "acknowledged" : true, "insertedIds" : [ ObjectId("5f0087b73a35677ad1cb406a"), ObjectId("5f0087b73a35677ad1cb406b") ]}查找使用 find() 方法,非常强大:> db.test_crud_collections.find(){ "_id" : ObjectId("5f00873a3a35677ad1cb4067"), "name" : "zhang shan", "age" : "18", "sex" : "男" }{ "_id" : ObjectId("5f00875e3a35677ad1cb4068"), "name" : "zhang tianai", "age" : "22", "sex" : "女" }{ "_id" : ObjectId("5f00877b3a35677ad1cb4069"), "name" : "li si", "age" : "21", "sex" : "男" }{ "_id" : ObjectId("5f0087b73a35677ad1cb406a"), "name" : "lei ju", "age" : "27", "sex" : "男" }{ "_id" : ObjectId("5f0087b73a35677ad1cb406b"), "name" : "lei kun", "age" : "23", "sex" : "男" }find()方法中可以带文档查询条件,同时pretty()方法用于将文档格式化显示:> db.test_crud_collections.find({'sex': '女'}).pretty(){ "_id" : ObjectId("5f00875e3a35677ad1cb4068"), "name" : "zhang tianai", "age" : "22", "sex" : "女"}文档查询 and 和 or 的用法示例:> db.test_crud_collections.find({$or: [{"name": "lei ju"}, {"sex": "女"}]}).pretty(){ "_id" : ObjectId("5f00875e3a35677ad1cb4068"), "name" : "zhang tianai", "age" : "22", "sex" : "女"}{ "_id" : ObjectId("5f0087b73a35677ad1cb406a"), "name" : "lei ju", "age" : "27", "sex" : "男"}> db.test_crud_collections.find({$and: [{"name": "lei ju"}, {"sex": "女"}]}).pretty()字段大小比较示例:# 等于 --> {key:value} 不等于 --> {key: {$ne: vlaue}}# 小于 --> {key: {$lt: value}} 小于等于 --> {key: {$lte: value}}# 大于 --> {key: {$gt: vlaue}} 大于等于 --> {key: {$gte: vlaue}}# > db.test_crud_collections.find({ "age": { $gt: "22" }}){ "_id" : ObjectId("5f0087b73a35677ad1cb406a"), "name" : "lei ju", "age" : "27", "sex" : "男" }{ "_id" : ObjectId("5f0087b73a35677ad1cb406b"), "name" : "lei kun", "age" : "23", "sex" : "男" }> db.test_crud_collections.find({ "age": { $gte: "22" }}){ "_id" : ObjectId("5f00875e3a35677ad1cb4068"), "name" : "zhang tianai", "age" : "22", "sex" : "女" }{ "_id" : ObjectId("5f0087b73a35677ad1cb406a"), "name" : "lei ju", "age" : "27", "sex" : "男" }{ "_id" : ObjectId("5f0087b73a35677ad1cb406b"), "name" : "lei kun", "age" : "23", "sex" : "男" }> db.test_crud_collections.find({ "sex": { $ne: "男" }}){ "_id" : ObjectId("5f00875e3a35677ad1cb4068"), "name" : "zhang tianai", "age" : "22", "sex" : "女" }更新文档:> db.test_crud_collections.find({"name": 'lei ju'}){ "_id" : ObjectId("5f0087b73a35677ad1cb406a"), "name" : "lei ju", "age" : "27", "sex" : "男" }> db.test_crud_collections.update({"name": 'lei ju'}, {$set:{'sex':'女'}}, {multi:true})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.test_crud_collections.find({"name": 'lei ju'}){ "_id" : ObjectId("5f0087b73a35677ad1cb406a"), "name" : "lei ju", "age" : "27", "sex" : "女" }删除文档使用 remove() 方法即可:> db.test_crud_collections.remove({"age": {$gt: "22"}})WriteResult({ "nRemoved" : 2 })> db.test_crud_collections.find(){ "_id" : ObjectId("5f00873a3a35677ad1cb4067"), "name" : "zhang shan", "age" : "18", "sex" : "男" }{ "_id" : ObjectId("5f00875e3a35677ad1cb4068"), "name" : "zhang tianai", "age" : "22", "sex" : "女" }{ "_id" : ObjectId("5f00877b3a35677ad1cb4069"), "name" : "li si", "age" : "21", "sex" : "男" }MongoDB 还支持一些聚合查询,使用非常简单:> db.test_crud_collections.count()5> db.test_crud_collections.count({'sex': '男'})4> db.test_crud_collections.count({'sex': '女'})1MongoDB中还支持排序操作,使用sort()方法即可; -1表示从大到小排列;1则从小到大排列:> db.test_crud_collections.find().sort({"age": -1}){ "_id" : ObjectId("5f00875e3a35677ad1cb4068"), "name" : "zhang tianai", "age" : "22", "sex" : "女" }{ "_id" : ObjectId("5f00877b3a35677ad1cb4069"), "name" : "li si", "age" : "21", "sex" : "男" }{ "_id" : ObjectId("5f00873a3a35677ad1cb4067"), "name" : "zhang shan", "age" : "18", "sex" : "男" }> db.test_crud_collections.find().sort({"age": 1}){ "_id" : ObjectId("5f00873a3a35677ad1cb4067"), "name" : "zhang shan", "age" : "18", "sex" : "男" }{ "_id" : ObjectId("5f00877b3a35677ad1cb4069"), "name" : "li si", "age" : "21", "sex" : "男" }{ "_id" : ObjectId("5f00875e3a35677ad1cb4068"), "name" : "zhang tianai", "age" : "22", "sex" : "女" }当然 MongoDB 操作远不止上面介绍的这些,还有许多更为高级的操作,请查阅官方文档,进行实操训练,熟练使用 MongoDB。接下来我们将介绍如何使用 Python 操作 MongoDB,这部分内容会在后面爬取数据时经常用到。
- 2.1 字符串 字符串是 Redis 最基本的键值对类型。它在数据库中将一个单独的键和单独的一个值关联起来。和 Python 字典类型中的 key-value 类似。常用的字符串操作命令有:指令含义set为字符串键设置值get获取字符串键的值getset获取旧值设置新值mset一次设置多个字符串键的值mget一次获取多个字符串键的值msetnx只在键不存在的情况下,一次为多个字符串键设置值strlen获取字符串值的字节长度getrange获取字符串值指定索引范围的值setrange对字符串值的指定索引范围进行设置incrby/decrby对指定值执行加法操作和减法操作incrbyfloat对整数值执行浮点数加法操作接下来我们就使用上面的指令在 redis 的命令行中进行测试,请仔细查看每一步操作并动手实践:首先是 set 和 get 指令,非常简单:127.0.0.1:6777> set hello worldOK127.0.0.1:6777> get hello"world"127.0.0.1:6777>接着是 getset 指令,getset 返回的是旧值,同时会设置新的值# 127.0.0.1:6777> getset hello "new world""world"127.0.0.1:6777> get hello"new world"127.0.0.1:6777>接着演示 mset 和 mget 指令,都是 set 和 get 的批量版,set 后面跟的是 key1 value1 key2 value2 … 这样的形式# 127.0.0.1:6777> mset key1 value1 key2 value2 key3 value3OK127.0.0.1:6777> mget key1 key2 key31) "value1"2) "value2"3) "value3"127.0.0.1:6777>msetnx 只能对不存在的键进行批量设置值,对于存在的键进行设置时会报错。返回0表示失败# 127.0.0.1:6777> msetnx key3 value3 key4 value4(integer) 0127.0.0.1:6777> get key4(nil)类似于 python 中的 len(key1) 语句# 127.0.0.1:6777> strlen key1(integer) 6getrange 和 setrange 指令非常类似于 python 中的切片操作# 127.0.0.1:6777> get key1"value1"127.0.0.1:6777> getrange key1 0 3"valu"127.0.0.1:6777> getrange key1 -3 -1"ue1"127.0.0.1:6777> setrange key1 2 xxx(integer) 6127.0.0.1:6777> get key1"vaxxx1"127.0.0.1:6777> setrange key1 10 ", this is so pretty!"(integer) 30可以看到,对于超出范围的,会用 \x00 填充# 127.0.0.1:6777> get key1"vaxxx1\x00\x00\x00\x00, this is so pretty!"127.0.0.1:6777> incrby、decrby 和 incrbyfloat 指令的实例127.0.0.1:6777> set number 1OK127.0.0.1:6777> incrby number 100(integer) 101127.0.0.1:6777> get number"101"127.0.0.1:6777> decrby number 50(integer) 51127.0.0.1:6777> get number"51"加浮点数必须使用专门的指令,不能再使用 incrby 指令:# 127.0.0.1:6777> incrby number 12.2(error) ERR value is not an integer or out of range127.0.0.1:6777> incrbyfloat number 12.2"63.2"redis 字符串类型的操作是不是比较简单?接下来还有更复杂的数据类型,请继续往下学习。
- 1.Anroid应用启动流程 移动端架构师电子书
- 7-2 利用Docker部署程序(一) 在线协同办公小程序
- 12 Python 数据类型详细篇:元组 带你学习 Python 基础语法
pretty相关搜索
-
pack
package
package文件
padding
pages
page对象
panda
panel
panel控件
param
parameter
parcel
parent
parentnode
parents
parse
parse error
parseint
partition
pascal