From 26cb9fd11ea3bac9b3689e2d3641be40b84a792b Mon Sep 17 00:00:00 2001 From: kingname Date: Tue, 21 Apr 2020 22:22:48 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E8=BF=90=E8=A1=8C=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_13/QASystem/Pipfile | 2 +- chapter_13/QASystem/Pipfile.lock | 256 ++++++++++-------- chapter_13/QASystem/Readme.md | 3 + .../QASystem/business_logic/RedisLogic.py | 3 +- chapter_13/QASystem/controller/Controller.py | 3 - chapter_13/QASystem/model/RedisUtil.py | 4 +- chapter_13/QASystem/util/BloomFilter.py | 11 +- 7 files changed, 156 insertions(+), 126 deletions(-) create mode 100644 chapter_13/QASystem/Readme.md diff --git a/chapter_13/QASystem/Pipfile b/chapter_13/QASystem/Pipfile index 3fd5f37..e077ca4 100644 --- a/chapter_13/QASystem/Pipfile +++ b/chapter_13/QASystem/Pipfile @@ -1,6 +1,6 @@ [[source]] -url = "https://pypi.python.org/simple" +url = "https://mirrors.163.com/pypi/simple/" verify_ssl = true name = "pypi" diff --git a/chapter_13/QASystem/Pipfile.lock b/chapter_13/QASystem/Pipfile.lock index 533f983..e2c203a 100644 --- a/chapter_13/QASystem/Pipfile.lock +++ b/chapter_13/QASystem/Pipfile.lock @@ -1,27 +1,14 @@ { "_meta": { "hash": { - "sha256": "d7cb844d9d9d5f84d1307ee0fef83bd7c72824cf978482a8f2acd0df346e6701" - }, - "host-environment-markers": { - "implementation_name": "cpython", - "implementation_version": "3.6.5", - "os_name": "posix", - "platform_machine": "x86_64", - "platform_python_implementation": "CPython", - "platform_release": "17.7.0", - "platform_system": "Darwin", - "platform_version": "Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64", - "python_full_version": "3.6.5", - "python_version": "3.6", - "sys_platform": "darwin" + "sha256": "faa5c826c837c8a8979f7ada90fd3169698f58c3a616a023f53b9333524817b3" }, "pipfile-spec": 6, "requires": {}, "sources": [ { "name": "pypi", - "url": "https://pypi.python.org/simple", + "url": "https://mirrors.163.com/pypi/simple/", "verify_ssl": true } ] @@ -29,135 +16,182 @@ "default": { "click": { "hashes": [ - "sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d", - "sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b" + "sha256:8a18b4ea89d8820c5d0c7da8a64b2c324b4dabb695804dbfea19b9be9d88c0cc", + "sha256:e345d143d80bf5ee7534056164e5e112ea5e22716bbb1ce727941f4c8b471b9a" ], - "version": "==6.7" + "version": "==7.1.1" }, "cython": { "hashes": [ - "sha256:13c73e2ffa93a615851e03fad97591954d143b5b62361b9adef81f46a31cd8ef", - "sha256:9ec27681c5b1b457aacb1cbda5db04aa28b76da2af6e1e1fd15f233eafe6a0b0", - "sha256:13eab5a2835a84ff62db343035603044c908d2b3b6eec09d67fdf9970acf7ac9", - "sha256:022592d419fc754509d0e0461eb2958dbaa45fb60d51c8a61778c58994edbe36", - "sha256:ae4784f040a3313c8bd00c8d04934b7ade63dc59692d8f00a5235be8ed72a445", - "sha256:e22f21cf92a9f8f007a280e3b3462c886d9068132a6c698dec10ad6125e3ca1e", - "sha256:b2ba8310ebd3c0e0b884d5e95bbd99d467d6af922acd1e44fe4b819839b2150e", - "sha256:ef86de9299e4ab2ebb129fb84b886bf40b9aced9807c6d6d5f28b46fb905f82c", - "sha256:183b35a48f58862c4ec1e821f07bb7b1156c8c8559c85c32ae086f28947474eb", - "sha256:693a8619ef066ece055ed065a15cf440f9d3ebd1bca60e87ea19144833756433", - "sha256:87e57b5d730cfab225d95e7b23abbc0c6f77598bd66639e93c73ce8afbae6f38", - "sha256:07659f4c57582104d9486c071de512fbd7e087a3a630535298442cc0e20a3f5a", - "sha256:cdbb917e41220bd3812234dbe59d15391adbc2c5d91ae11a5273aab9e32ba7ec", - "sha256:32de8637f5e6c5a76667bc7c8fc644bd9314dc19af36db8ce30a0b92ada0f642", - "sha256:660eeb6870687fd3eda91e00ba4e72220545c254c8c4d967fd0c910f4fbb8cbc", - "sha256:9400e5db8383346b0694a3e794d8bded18a27b21123516dcdf4b79d7ec28e98b", - "sha256:ee7a9614d51fe16e32ca5befe72e0808baff481791728449d0b17c8b0fe29eb9", - "sha256:827d3a91b7a7c31ce69e5974496fd9a8ba28eb498b988affb66d0d30de11d934", - "sha256:ea5c16c48e561f4a6f6b8c24807494b77a79e156b8133521c400f22ca712101b", - "sha256:4172c183ef4fb2ace6a29cdf7fc9200c5a471a7f775ff691975b774bd9ed3ad2", - "sha256:c78ad0df75a9fc03ab28ca1b950c893a208c451a18f76796c3e25817d6994001", - "sha256:d2223a80c623e2a8e97953ab945dfaa9385750a494438dcb55562eb1ddd9565a", - "sha256:553956ec06ecbd731ef0c538eb28a5b46bedea7ab89b18237ff28b4b99d65eee", - "sha256:2f526b0887128bf20ab2acc905a975f62b5a04ab2f63ecbe5a30fc28285d0e0c", - "sha256:f3e4860f5458a9875caa3de65e255720c0ed2ce71f0bcdab02497b32104f9db8", - "sha256:759c799e9ef418f163b5412e295e14c0a48fe3b4dcba9ab8aab69e9f511cfefd", - "sha256:fc6c20a8ac22202a779ad4c59756647be0826993d2151a03c015e76d2368ae5f", - "sha256:b64575241f64f6ec005a4d4137339fb0ba5e156e826db2fdb5f458060d9979e0" + "sha256:0542a6c4ff1be839b6479deffdbdff1a330697d7953dd63b6de99c078e3acd5f", + "sha256:0bcf7f87aa0ba8b62d4f3b6e0146e48779eaa4f39f92092d7ff90081ef6133e0", + "sha256:13408a5e5574b322153a23f23eb9e69306d4d8216428b435b75fdab9538ad169", + "sha256:1846a8f4366fb4041d34cd37c2d022421ab1a28bcf79ffa6cf33a45b5acba9af", + "sha256:1d32d0965c2fc1476af9c367e396c3ecc294d4bde2cfde6f1704e8787e3f0e1f", + "sha256:21d6abd25e0fcfa96edf164831f53ca20deb64221eb3b7d6d1c4d582f4c54c84", + "sha256:232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05", + "sha256:245e69a1f367c89e3c8a1c2699bd20ab67b3d57053f3c71f0623d36def074308", + "sha256:3a274c63a3575ae9d6cde5a31c2f5cb18d0a34d9bded96433ceb86d11dc0806d", + "sha256:3b400efb38d6092d2ee7f6d9835dd6dc4f99e804abf97652a5839ff9b1910f25", + "sha256:4ab2054325a7856ed0df881b8ffdadae05b29cf3549635f741c18ce2c860f51b", + "sha256:4b5efb5bff2a1ed0c23dd131223566a0cc51c5266e70968082aed75b73f8c1e2", + "sha256:54e7bf8a2a0c8536f4c42fc5ef54e6780153826279aef923317cf919671119f4", + "sha256:59a0b01fc9376c2424eb3b09a0550f1cbd51681a59cee1e02c9d5c546c601679", + "sha256:5ba06cf0cfc79686daedf9a7895cad4c993c453b86240fc54ecbe9b0c951504c", + "sha256:66768684fdee5f9395e6ee2daa9f770b37455fcb22d31960843bd72996aaa84f", + "sha256:772c13250aea33ac17eb042544b310f0dc3862bbde49b334f5c12f7d1b627476", + "sha256:7d31c4b518b34b427b51e85c6827473b08f473df2fcba75969daad65ea2a5f6c", + "sha256:961f11eb427161a8f5b35e74285a5ff6651eee710dbe092072af3e9337e26825", + "sha256:96342c9f934bcce22eaef739e4fca9ce5cc5347df4673f4de8e5dce5fe158444", + "sha256:a507d507b45af9657b050cea780e668cbcb9280eb94a5755c634a48760b1d035", + "sha256:ad318b60d13767838e99cf93f3571849946eb960c54da86c000b97b2ffa60128", + "sha256:b137bb2f6e079bd04e6b3ea15e9f9b9c97982ec0b1037d48972940577d3a57bb", + "sha256:b3f95ba4d251400bfd38b0891128d9b6365a54f06bd4d58ba033ecb39d2788cc", + "sha256:c0937ab8185d7f55bf7145dbfa3cc27a9d69916d4274690b18b9d1022ac54fd8", + "sha256:c2c28d22bfea830c0cdbd0d7f373d4f51366893a18a5bbd4dd8deb1e6bdd08c2", + "sha256:e074e2be68b4cb1d17b9c63d89ae0592742bdbc320466f342e1e1ea77ec83c40", + "sha256:e9abcc8013354f0059c16af9c917d19341a41981bb74dcc44e060f8a88db9123", + "sha256:eb757a4076e7bb1ca3e73fba4ec2b1c07ca0634200904f1df8f7f899c57b17af", + "sha256:f4ecb562b5b6a2d80543ec36f7fbc7c1a4341bb837a5fc8bd3c352470508133c", + "sha256:f516d11179627f95471cc0674afe8710d4dc5de764297db7f5bdb34bd92caff9", + "sha256:fd6496b41eb529349d58f3f6a09a64cceb156c9720f79cebdf975ea4fafc05f0" ], - "version": "==0.28.5" + "index": "pypi", + "version": "==0.29.16" }, "flask": { "hashes": [ - "sha256:a080b744b7e345ccfcbc77954861cb05b3c63786e93f2b3875e0913d44b43f05", - "sha256:2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48" + "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060", + "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557" ], - "version": "==1.0.2" + "index": "pypi", + "version": "==1.1.2" }, "itsdangerous": { "hashes": [ - "sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519" + "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", + "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749" ], - "version": "==0.24" + "version": "==1.1.0" }, "jinja2": { "hashes": [ - "sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd", - "sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4" + "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", + "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" ], - "version": "==2.10" + "version": "==2.11.2" }, "markupsafe": { "hashes": [ - "sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665" + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" ], - "version": "==1.0" + "version": "==1.1.1" }, "pymongo": { "hashes": [ - "sha256:0c31a39f440801cc8603547ccaacf4cb1f02b81af6ba656621c13677b27f4426", - "sha256:1f59440b993666a417ba1954cfb1b7fb11cb4dea1a1d2777897009f688d000ee", - "sha256:aec4ea43a1b8e9782246a259410f66692f2d3aa0f03c54477e506193b0781cb6", - "sha256:daedcfbf3b24b2b687e35b33252a9315425c2dd06a085a36906d516135bdd60e", - "sha256:966d987975aa3b4cfcdf1495930ff6ecb152fafe8e544e40633e41b24ca3e1c5", - "sha256:8e939dfa7d16609b99eb4d1fd2fc74f7a90f4fd0aaf31d611822daaff456236f", - "sha256:c8669f96277f140797e0ff99f80bd706271674942672a38ed694e2bfa66f3900", - "sha256:ce7c91463ad21ac72fc795188292b01c8366cf625e2d1e5ed473ce127b844f60", - "sha256:4a14e2d7c2c0e07b5affcfbfc5c395d767f94bb1a822934a41a3b5371cde1458", - "sha256:562c353079e8ce7e2ad611fd7436a72f5df97be72bca59ae9ebf789a724afd5c", - "sha256:52999666ad01de885653e1f74a86c2a6520d1004afec475180bebf3d7393a8fc", - "sha256:d776d8d47884e6ad39ff8a301f1ae6b7d2186f209218cf024f43334dbba79c64", - "sha256:4cb50541225208b37786fdb0de632e475c4f00ec4792579df551ef48d6999d69", - "sha256:ccf00549efaf6f8d5b35b654beb9aed2b788a5b33b05606eb818ddaa4e924ea3", - "sha256:1e10b3fda5677d360440ebd12a1185944dc81d9ea9acf0c6b0681013b3fb9bc2", - "sha256:b752088a2f819f163d11dfdbbe627b27eef9d8478c7e57d42c5e7c600fee434e", - "sha256:08dea6dbff33363419af7af3bf2e9a373ff71eb22833dd7063f9b953f09a0bdf", - "sha256:ffe94f9d17800610dda5282d7f6facfc216d79a93dd728a03d2f21cff3af7cc6", - "sha256:b73f889f032fbef05863f5056b46468a8262ae83628898e20b10bbbb79a3617e", - "sha256:0949110db76eb1b54cecfc0c0f8468a8b9a7fd42ba23fd0d4a37d97e0b4ca203", - "sha256:5ce2a71f473f4703daa8d6c61a00b35ce625a7f5015b4371e3af728dafca296a", - "sha256:6613e633676168a4500e5e6bb6e3e64d3fdb96d2dc472eb4b99235fb4141adb1", - "sha256:2b5a3806d9f656c14e9d9b693a344fc5684fdd045155594be0c505c6e9410a94", - "sha256:8fa4303e1f50d9f0c8f2f7833b5a370a94d19d41449def62b34ae072126b4dfd", - "sha256:e7ad1ec621db2c5ad47924f63561f75abfd4fff669c62c8cc99c169c90432f59", - "sha256:f2d9eb92b26600ae6e8092f66da4bcede1b61a647c9080d6b44c148aff3a8ea4", - "sha256:f16c7b6b98bc400d180f05e65e2236ef4ee9d71f3815280558582670e1e67536", - "sha256:dab0f63841aebb2b421fadb31f3c7eef27898f21274a8e5b45c4f2bccb40f9ed", - "sha256:8330406f294df118399c721f80979f2516447bcc73e4262826687872c864751e", - "sha256:8fae0e607d954aa5f2acfbb2be79f7359521b2b9a4458a995c5baf48868bc4b4", - "sha256:075686718e64483b95abf224317925687742e810dbf95d5750c8fb36cf88a5ec", - "sha256:69d757cc9786e1417cc44230073c82e490f8f5c4a71299de7dba8fbce7193f8f", - "sha256:e750ceff90998e53c0f4b6a3080ec1ccf5aa264e290996b963a59ab6a782d5a5", - "sha256:b1f6cac26ed5aaf811e6310d5829506eee7f0c5f113fd5a5c2bd4c584d6a994f", - "sha256:75183c8336e25b4b879dc8fc8d13a585abb5e0042d0ddbd4b54fb36c11f849bf", - "sha256:1dcde7e63d50c957fc377a6cdf56c90635015a3a41b894be96d9421458608706", - "sha256:34bb6b32969677d7f6a9694945899c5c9324d93094874b5fe9c0a4aa10323a49", - "sha256:e4b348c2f51cb1bd75a31f3fc53eee59975ff7349def12f8f6e2d6cc198e849a", - "sha256:d3e9c3ef66c99e11e432a1f1cf51dbe82b9ced646e8fff3309e52d4318561de5", - "sha256:457faf75fc9e8c25625240436508c4e482f977a31363a84a9a25fabb4b8a2194", - "sha256:e9a6b224362bbdfc3e18fcb03c449422bf3a826b7365a77fcd863bcdef020b7c", - "sha256:3a7ed4a2ad7abc4bc29a5ec181e23bd370ba4003767260519f825db96f1daf63", - "sha256:8c1436e9b65fd2c0c46141cef108cae8cd303c0d233af7c0e0de18b3c59c6dcf", - "sha256:847c8ce15a1b5634c7a62732899f339d168a443115cd9bc37c52d75fb362bca1", - "sha256:bf9e9bcb2f4a8fa1cc5e956c92a9c5f8a6cf5d4f81e2e8a696ff5af5626d66b6", - "sha256:6192bf37933d16d5348e9d7ca6f3b2a45fbafe110ac77460e67dc856913d1b2f", - "sha256:f14fb6c4058772a0d74d82874d3b89d7264d89b4ed7fa0413ea0ef8112b268b9" + "sha256:01b4e10027aef5bb9ecefbc26f5df3368ce34aef81df43850f701e716e3fe16d", + "sha256:0fc5aa1b1acf7f61af46fe0414e6a4d0c234b339db4c03a63da48599acf1cbfc", + "sha256:1396eb7151e0558b1f817e4b9d7697d5599e5c40d839a9f7270bd90af994ad82", + "sha256:18e84a3ec5e73adcb4187b8e5541b2ad61d716026ed9863267e650300d8bea33", + "sha256:19adf2848b80cb349b9891cc854581bbf24c338be9a3260e73159bdeb2264464", + "sha256:20ee0475aa2ba437b0a14806f125d696f90a8433d820fb558fdd6f052acde103", + "sha256:26798795097bdeb571f13942beef7e0b60125397811c75b7aa9214d89880dd1d", + "sha256:26e707a4eb851ec27bb969b5f1413b9b2eac28fe34271fa72329100317ea7c73", + "sha256:2a3c7ad01553b27ec553688a1e6445e7f40355fb37d925c11fcb50b504e367f8", + "sha256:2f07b27dbf303ea53f4147a7922ce91a26b34a0011131471d8aaf73151fdee9a", + "sha256:316f0cf543013d0c085e15a2c8abe0db70f93c9722c0f99b6f3318ff69477d70", + "sha256:31d11a600eea0c60de22c8bdcb58cda63c762891facdcb74248c36713240987f", + "sha256:334ef3ffd0df87ea83a0054454336159f8ad9c1b389e19c0032d9cb8410660e6", + "sha256:358ba4693c01022d507b96a980ded855a32dbdccc3c9331d0667be5e967f30ed", + "sha256:3a6568bc53103df260f5c7d2da36dffc5202b9a36c85540bba1836a774943794", + "sha256:444bf2f44264578c4085bb04493bfed0e5c1b4fe7c2704504d769f955cc78fe4", + "sha256:47a00b22c52ee59dffc2aad02d0bbfb20c26ec5b8de8900492bf13ad6901cf35", + "sha256:4c067db43b331fc709080d441cb2e157114fec60749667d12186cc3fc8e7a951", + "sha256:4c092310f804a5d45a1bcaa4191d6d016c457b6ed3982a622c35f729ff1c7f6b", + "sha256:53b711b33134e292ef8499835a3df10909c58df53a2a0308f598c432e9a62892", + "sha256:568d6bee70652d8a5af1cd3eec48b4ca1696fb1773b80719ebbd2925b72cb8f6", + "sha256:56fa55032782b7f8e0bf6956420d11e2d4e9860598dfe9c504edec53af0fc372", + "sha256:5a2c492680c61b440272341294172fa3b3751797b1ab983533a770e4fb0a67ac", + "sha256:61235cc39b5b2f593086d1d38f3fc130b2d125bd8fc8621d35bc5b6bdeb92bd2", + "sha256:619ac9aaf681434b4d4718d1b31aa2f0fce64f2b3f8435688fcbdc0c818b6c54", + "sha256:6238ac1f483494011abde5286282afdfacd8926659e222ba9b74c67008d3a58c", + "sha256:63752a72ca4d4e1386278bd43d14232f51718b409e7ac86bcf8810826b531113", + "sha256:6fdc5ccb43864065d40dd838437952e9e3da9821b7eac605ba46ada77f846bdf", + "sha256:7abc3a6825a346fa4621a6f63e3b662bbb9e0f6ffc32d30a459d695f20fb1a8b", + "sha256:7aef381bb9ae8a3821abd7f9d4d93978dbd99072b48522e181baeffcd95b56ae", + "sha256:80df3caf251fe61a3f0c9614adc6e2bfcffd1cd3345280896766712fb4b4d6d7", + "sha256:95f970f34b59987dee6f360d2e7d30e181d58957b85dff929eee4423739bd151", + "sha256:993257f6ca3cde55332af1f62af3e04ca89ce63c08b56a387cdd46136c72f2fa", + "sha256:9c0a57390549affc2b5dda24a38de03a5c7cbc58750cd161ff5d106c3c6eec80", + "sha256:a0794e987d55d2f719cc95fcf980fc62d12b80e287e6a761c4be14c60bd9fecc", + "sha256:a3b98121e68bf370dd8ea09df67e916f93ea95b52fc010902312168c4d1aff5d", + "sha256:a60756d55f0887023b3899e6c2923ba5f0042fb11b1d17810b4e07395404f33e", + "sha256:a676bd2fbc2309092b9bbb0083d35718b5420af3a42135ebb1e4c3633f56604d", + "sha256:a732838c78554c1257ff2492f5c8c4c7312d0aecd7f732149e255f3749edd5ee", + "sha256:ae65d65fde4135ef423a2608587c9ef585a3551fc2e4e431e7c7e527047581be", + "sha256:b070a4f064a9edb70f921bfdc270725cff7a78c22036dd37a767c51393fb956f", + "sha256:b6da85949aa91e9f8c521681344bd2e163de894a5492337fba8b05c409225a4f", + "sha256:bbf47110765b2a999803a7de457567389253f8670f7daafb98e059c899ce9764", + "sha256:c06b3f998d2d7160db58db69adfb807d2ec307e883e2f17f6b87a1ef6c723f11", + "sha256:c318fb70542be16d3d4063cde6010b1e4d328993a793529c15a619251f517c39", + "sha256:c4aef42e5fa4c9d5a99f751fb79caa880dac7eaf8a65121549318b984676a1b7", + "sha256:c9ca545e93a9c2a3bdaa2e6e21f7a43267ff0813e8055adf2b591c13164c0c57", + "sha256:da2c3220eb55c4239dd8b982e213da0b79023cac59fe54ca09365f2bc7e4ad32", + "sha256:dd8055da300535eefd446b30995c0813cc4394873c9509323762a93e97c04c03", + "sha256:e2b46e092ea54b732d98c476720386ff2ccd126de1e52076b470b117bff7e409", + "sha256:e334c4f39a2863a239d38b5829e442a87f241a92da9941861ee6ec5d6380b7fe", + "sha256:e5c54f04ca42bbb5153aec5d4f2e3d9f81e316945220ac318abd4083308143f5", + "sha256:f96333f9d2517c752c20a35ff95de5fc2763ac8cdb1653df0f6f45d281620606" ], - "version": "==3.7.1" + "index": "pypi", + "version": "==3.10.1" }, "redis": { "hashes": [ - "sha256:8a1900a9f2a0a44ecf6e8b5eb3e967a9909dfed219ad66df094f27f7d6f330fb", - "sha256:a22ca993cea2962dbb588f9f30d0015ac4afcc45bee27d3978c0dbe9e97c6c0f" + "sha256:0dcfb335921b88a850d461dc255ff4708294943322bd55de6cfd68972490ca1f", + "sha256:b205cffd05ebfd0a468db74f0eedbff8df1a7bfc47521516ade4692991bb0833" ], - "version": "==2.10.6" + "index": "pypi", + "version": "==3.4.1" }, "werkzeug": { "hashes": [ - "sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b", - "sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c" + "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", + "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], - "version": "==0.14.1" + "version": "==1.0.1" } }, "develop": {} diff --git a/chapter_13/QASystem/Readme.md b/chapter_13/QASystem/Readme.md new file mode 100644 index 0000000..0814f13 --- /dev/null +++ b/chapter_13/QASystem/Readme.md @@ -0,0 +1,3 @@ +## 说明 + +本章代码将会在2020年5月进行重构。 diff --git a/chapter_13/QASystem/business_logic/RedisLogic.py b/chapter_13/QASystem/business_logic/RedisLogic.py index 8b40833..d1bab92 100644 --- a/chapter_13/QASystem/business_logic/RedisLogic.py +++ b/chapter_13/QASystem/business_logic/RedisLogic.py @@ -113,4 +113,5 @@ def add_answer_vote_set(self, question_id, answer_id): :return: """ redis_key = 'qa_system:answer:{question_id}:vote'.format(question_id=question_id) - self.redis_util.sorted_set_add(redis_key, answer_id, 0) \ No newline at end of file + self.redis_util.sorted_set_add(redis_key, answer_id, 0) + diff --git a/chapter_13/QASystem/controller/Controller.py b/chapter_13/QASystem/controller/Controller.py index 018fe50..a892092 100644 --- a/chapter_13/QASystem/controller/Controller.py +++ b/chapter_13/QASystem/controller/Controller.py @@ -62,12 +62,9 @@ def register(body): password = body.get('password', '') if not all([user, password]): return json.dumps({'success': False, 'reason': '用户名和密码不能同时为空!'}, ensure_ascii=False) - bloom.lock(user) if bloom.check_duplicate(user): - bloom.unlock(user) return json.dumps({'success': False, 'reason': '用户名已被注册!请更换'}) bloom.set_key(user) - bloom.unlock(user) password_hash = generate_password_hash(password) user_id = mongo_logic.save_user_info(user, password_hash) session_id, session_data = generate_session(user_id, user) diff --git a/chapter_13/QASystem/model/RedisUtil.py b/chapter_13/QASystem/model/RedisUtil.py index 9e94c1e..140c7d9 100644 --- a/chapter_13/QASystem/model/RedisUtil.py +++ b/chapter_13/QASystem/model/RedisUtil.py @@ -43,7 +43,7 @@ def set_string_if_not_exists(self, redis_key: str, value: int) -> bool: return False def increase_sorted_set_score(self, key, target, value) -> bool: - self.client.zincrby(key, target, value) + self.client.zincrby(key, value, target) return True def get_value_score_tuple_by_rank(self, key, rank_start, offset, withscores=True): @@ -51,7 +51,7 @@ def get_value_score_tuple_by_rank(self, key, rank_start, offset, withscores=True return doc_id_score_list def sorted_set_add(self, key, value, score): - self.client.zadd(key, value, score) + self.client.zadd(key, {value: score}) redis_util = RedisUtil() diff --git a/chapter_13/QASystem/util/BloomFilter.py b/chapter_13/QASystem/util/BloomFilter.py index a73167a..3728d73 100644 --- a/chapter_13/QASystem/util/BloomFilter.py +++ b/chapter_13/QASystem/util/BloomFilter.py @@ -1,5 +1,5 @@ import hashlib -from model import redis_util +from business_logic import RedisLogic import math from struct import unpack, pack @@ -11,7 +11,7 @@ def __init__(self, capacity, error_rate): (capacity * abs(math.log(error_rate))) / (self.num_slices * (math.log(2) ** 2)))) self.hashs = self.make_hashfuncs(self.num_slices, self.bits_per_slice) - self.redis_util = redis_util + self.redis_util = RedisLogic() def make_hashfuncs(self, num_slices, num_bits): """ @@ -69,13 +69,8 @@ def set_key(self, key): offset_list = self.hashs(key) self.redis_util.set_bit_value(offset_list) - def lock(self, key): - redis_key = 'qa_system:bloomlock:{}'.format(key) - return self.redis_util.set_string_if_not_exists(redis_key, 1) - def unlock(self, key): - redis_key = 'qa_system:bloomlock:{}'.format(key) - self.redis_util.delete_key(redis_key) + if __name__ == '__main__': bloom = BloomFilter(1000000000, 0.0001) From 01ac304d4b15bc1209c8249490812d59a034715b Mon Sep 17 00:00:00 2001 From: kingname Date: Sat, 2 May 2020 14:44:38 +0800 Subject: [PATCH 02/17] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=85=A512?= =?UTF-8?q?=E7=AB=A0=E6=95=B0=E6=8D=AE=E4=BB=A5=E5=90=8E=EF=BC=8C=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=AD=A3=E5=B8=B8=E6=98=BE=E7=A4=BA=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_12/QASystem/Pipfile | 2 +- chapter_12/QASystem/Pipfile.lock | 189 +++++++++++++---------- chapter_12/QASystem/Readme.md | 11 ++ chapter_12/QASystem/generate_answer.py | 133 ++++++++-------- chapter_12/QASystem/generate_question.py | 94 +++++------ chapter_12/QASystem/generate_vote.py | 32 ++++ 6 files changed, 275 insertions(+), 186 deletions(-) create mode 100644 chapter_12/QASystem/Readme.md create mode 100644 chapter_12/QASystem/generate_vote.py diff --git a/chapter_12/QASystem/Pipfile b/chapter_12/QASystem/Pipfile index 3fd5f37..e077ca4 100644 --- a/chapter_12/QASystem/Pipfile +++ b/chapter_12/QASystem/Pipfile @@ -1,6 +1,6 @@ [[source]] -url = "https://pypi.python.org/simple" +url = "https://mirrors.163.com/pypi/simple/" verify_ssl = true name = "pypi" diff --git a/chapter_12/QASystem/Pipfile.lock b/chapter_12/QASystem/Pipfile.lock index c2b74ca..e2c203a 100644 --- a/chapter_12/QASystem/Pipfile.lock +++ b/chapter_12/QASystem/Pipfile.lock @@ -1,14 +1,14 @@ { "_meta": { "hash": { - "sha256": "d7cb844d9d9d5f84d1307ee0fef83bd7c72824cf978482a8f2acd0df346e6701" + "sha256": "faa5c826c837c8a8979f7ada90fd3169698f58c3a616a023f53b9333524817b3" }, "pipfile-spec": 6, "requires": {}, "sources": [ { "name": "pypi", - "url": "https://pypi.python.org/simple", + "url": "https://mirrors.163.com/pypi/simple/", "verify_ssl": true } ] @@ -16,52 +16,56 @@ "default": { "click": { "hashes": [ - "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13", - "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" + "sha256:8a18b4ea89d8820c5d0c7da8a64b2c324b4dabb695804dbfea19b9be9d88c0cc", + "sha256:e345d143d80bf5ee7534056164e5e112ea5e22716bbb1ce727941f4c8b471b9a" ], - "version": "==7.0" + "version": "==7.1.1" }, "cython": { "hashes": [ - "sha256:022592d419fc754509d0e0461eb2958dbaa45fb60d51c8a61778c58994edbe36", - "sha256:07659f4c57582104d9486c071de512fbd7e087a3a630535298442cc0e20a3f5a", - "sha256:13c73e2ffa93a615851e03fad97591954d143b5b62361b9adef81f46a31cd8ef", - "sha256:13eab5a2835a84ff62db343035603044c908d2b3b6eec09d67fdf9970acf7ac9", - "sha256:183b35a48f58862c4ec1e821f07bb7b1156c8c8559c85c32ae086f28947474eb", - "sha256:2f526b0887128bf20ab2acc905a975f62b5a04ab2f63ecbe5a30fc28285d0e0c", - "sha256:32de8637f5e6c5a76667bc7c8fc644bd9314dc19af36db8ce30a0b92ada0f642", - "sha256:4172c183ef4fb2ace6a29cdf7fc9200c5a471a7f775ff691975b774bd9ed3ad2", - "sha256:553956ec06ecbd731ef0c538eb28a5b46bedea7ab89b18237ff28b4b99d65eee", - "sha256:660eeb6870687fd3eda91e00ba4e72220545c254c8c4d967fd0c910f4fbb8cbc", - "sha256:693a8619ef066ece055ed065a15cf440f9d3ebd1bca60e87ea19144833756433", - "sha256:759c799e9ef418f163b5412e295e14c0a48fe3b4dcba9ab8aab69e9f511cfefd", - "sha256:827d3a91b7a7c31ce69e5974496fd9a8ba28eb498b988affb66d0d30de11d934", - "sha256:87e57b5d730cfab225d95e7b23abbc0c6f77598bd66639e93c73ce8afbae6f38", - "sha256:9400e5db8383346b0694a3e794d8bded18a27b21123516dcdf4b79d7ec28e98b", - "sha256:9ec27681c5b1b457aacb1cbda5db04aa28b76da2af6e1e1fd15f233eafe6a0b0", - "sha256:ae4784f040a3313c8bd00c8d04934b7ade63dc59692d8f00a5235be8ed72a445", - "sha256:b2ba8310ebd3c0e0b884d5e95bbd99d467d6af922acd1e44fe4b819839b2150e", - "sha256:b64575241f64f6ec005a4d4137339fb0ba5e156e826db2fdb5f458060d9979e0", - "sha256:c78ad0df75a9fc03ab28ca1b950c893a208c451a18f76796c3e25817d6994001", - "sha256:cdbb917e41220bd3812234dbe59d15391adbc2c5d91ae11a5273aab9e32ba7ec", - "sha256:d2223a80c623e2a8e97953ab945dfaa9385750a494438dcb55562eb1ddd9565a", - "sha256:e22f21cf92a9f8f007a280e3b3462c886d9068132a6c698dec10ad6125e3ca1e", - "sha256:ea5c16c48e561f4a6f6b8c24807494b77a79e156b8133521c400f22ca712101b", - "sha256:ee7a9614d51fe16e32ca5befe72e0808baff481791728449d0b17c8b0fe29eb9", - "sha256:ef86de9299e4ab2ebb129fb84b886bf40b9aced9807c6d6d5f28b46fb905f82c", - "sha256:f3e4860f5458a9875caa3de65e255720c0ed2ce71f0bcdab02497b32104f9db8", - "sha256:fc6c20a8ac22202a779ad4c59756647be0826993d2151a03c015e76d2368ae5f" + "sha256:0542a6c4ff1be839b6479deffdbdff1a330697d7953dd63b6de99c078e3acd5f", + "sha256:0bcf7f87aa0ba8b62d4f3b6e0146e48779eaa4f39f92092d7ff90081ef6133e0", + "sha256:13408a5e5574b322153a23f23eb9e69306d4d8216428b435b75fdab9538ad169", + "sha256:1846a8f4366fb4041d34cd37c2d022421ab1a28bcf79ffa6cf33a45b5acba9af", + "sha256:1d32d0965c2fc1476af9c367e396c3ecc294d4bde2cfde6f1704e8787e3f0e1f", + "sha256:21d6abd25e0fcfa96edf164831f53ca20deb64221eb3b7d6d1c4d582f4c54c84", + "sha256:232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05", + "sha256:245e69a1f367c89e3c8a1c2699bd20ab67b3d57053f3c71f0623d36def074308", + "sha256:3a274c63a3575ae9d6cde5a31c2f5cb18d0a34d9bded96433ceb86d11dc0806d", + "sha256:3b400efb38d6092d2ee7f6d9835dd6dc4f99e804abf97652a5839ff9b1910f25", + "sha256:4ab2054325a7856ed0df881b8ffdadae05b29cf3549635f741c18ce2c860f51b", + "sha256:4b5efb5bff2a1ed0c23dd131223566a0cc51c5266e70968082aed75b73f8c1e2", + "sha256:54e7bf8a2a0c8536f4c42fc5ef54e6780153826279aef923317cf919671119f4", + "sha256:59a0b01fc9376c2424eb3b09a0550f1cbd51681a59cee1e02c9d5c546c601679", + "sha256:5ba06cf0cfc79686daedf9a7895cad4c993c453b86240fc54ecbe9b0c951504c", + "sha256:66768684fdee5f9395e6ee2daa9f770b37455fcb22d31960843bd72996aaa84f", + "sha256:772c13250aea33ac17eb042544b310f0dc3862bbde49b334f5c12f7d1b627476", + "sha256:7d31c4b518b34b427b51e85c6827473b08f473df2fcba75969daad65ea2a5f6c", + "sha256:961f11eb427161a8f5b35e74285a5ff6651eee710dbe092072af3e9337e26825", + "sha256:96342c9f934bcce22eaef739e4fca9ce5cc5347df4673f4de8e5dce5fe158444", + "sha256:a507d507b45af9657b050cea780e668cbcb9280eb94a5755c634a48760b1d035", + "sha256:ad318b60d13767838e99cf93f3571849946eb960c54da86c000b97b2ffa60128", + "sha256:b137bb2f6e079bd04e6b3ea15e9f9b9c97982ec0b1037d48972940577d3a57bb", + "sha256:b3f95ba4d251400bfd38b0891128d9b6365a54f06bd4d58ba033ecb39d2788cc", + "sha256:c0937ab8185d7f55bf7145dbfa3cc27a9d69916d4274690b18b9d1022ac54fd8", + "sha256:c2c28d22bfea830c0cdbd0d7f373d4f51366893a18a5bbd4dd8deb1e6bdd08c2", + "sha256:e074e2be68b4cb1d17b9c63d89ae0592742bdbc320466f342e1e1ea77ec83c40", + "sha256:e9abcc8013354f0059c16af9c917d19341a41981bb74dcc44e060f8a88db9123", + "sha256:eb757a4076e7bb1ca3e73fba4ec2b1c07ca0634200904f1df8f7f899c57b17af", + "sha256:f4ecb562b5b6a2d80543ec36f7fbc7c1a4341bb837a5fc8bd3c352470508133c", + "sha256:f516d11179627f95471cc0674afe8710d4dc5de764297db7f5bdb34bd92caff9", + "sha256:fd6496b41eb529349d58f3f6a09a64cceb156c9720f79cebdf975ea4fafc05f0" ], "index": "pypi", - "version": "==0.28.5" + "version": "==0.29.16" }, "flask": { "hashes": [ - "sha256:2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48", - "sha256:a080b744b7e345ccfcbc77954861cb05b3c63786e93f2b3875e0913d44b43f05" + "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060", + "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557" ], "index": "pypi", - "version": "==1.0.2" + "version": "==1.1.2" }, "itsdangerous": { "hashes": [ @@ -72,10 +76,10 @@ }, "jinja2": { "hashes": [ - "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", - "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" + "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", + "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" ], - "version": "==2.10.3" + "version": "==2.11.2" }, "markupsafe": { "hashes": [ @@ -83,13 +87,16 @@ "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", @@ -106,61 +113,85 @@ "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", - "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" ], "version": "==1.1.1" }, "pymongo": { "hashes": [ - "sha256:08dea6dbff33363419af7af3bf2e9a373ff71eb22833dd7063f9b953f09a0bdf", - "sha256:0949110db76eb1b54cecfc0c0f8468a8b9a7fd42ba23fd0d4a37d97e0b4ca203", - "sha256:0c31a39f440801cc8603547ccaacf4cb1f02b81af6ba656621c13677b27f4426", - "sha256:1e10b3fda5677d360440ebd12a1185944dc81d9ea9acf0c6b0681013b3fb9bc2", - "sha256:1f59440b993666a417ba1954cfb1b7fb11cb4dea1a1d2777897009f688d000ee", - "sha256:2b5a3806d9f656c14e9d9b693a344fc5684fdd045155594be0c505c6e9410a94", - "sha256:4a14e2d7c2c0e07b5affcfbfc5c395d767f94bb1a822934a41a3b5371cde1458", - "sha256:4cb50541225208b37786fdb0de632e475c4f00ec4792579df551ef48d6999d69", - "sha256:52999666ad01de885653e1f74a86c2a6520d1004afec475180bebf3d7393a8fc", - "sha256:562c353079e8ce7e2ad611fd7436a72f5df97be72bca59ae9ebf789a724afd5c", - "sha256:5ce2a71f473f4703daa8d6c61a00b35ce625a7f5015b4371e3af728dafca296a", - "sha256:6613e633676168a4500e5e6bb6e3e64d3fdb96d2dc472eb4b99235fb4141adb1", - "sha256:8330406f294df118399c721f80979f2516447bcc73e4262826687872c864751e", - "sha256:8e939dfa7d16609b99eb4d1fd2fc74f7a90f4fd0aaf31d611822daaff456236f", - "sha256:8fa4303e1f50d9f0c8f2f7833b5a370a94d19d41449def62b34ae072126b4dfd", - "sha256:966d987975aa3b4cfcdf1495930ff6ecb152fafe8e544e40633e41b24ca3e1c5", - "sha256:aec4ea43a1b8e9782246a259410f66692f2d3aa0f03c54477e506193b0781cb6", - "sha256:b73f889f032fbef05863f5056b46468a8262ae83628898e20b10bbbb79a3617e", - "sha256:b752088a2f819f163d11dfdbbe627b27eef9d8478c7e57d42c5e7c600fee434e", - "sha256:c8669f96277f140797e0ff99f80bd706271674942672a38ed694e2bfa66f3900", - "sha256:ccf00549efaf6f8d5b35b654beb9aed2b788a5b33b05606eb818ddaa4e924ea3", - "sha256:ce7c91463ad21ac72fc795188292b01c8366cf625e2d1e5ed473ce127b844f60", - "sha256:d776d8d47884e6ad39ff8a301f1ae6b7d2186f209218cf024f43334dbba79c64", - "sha256:dab0f63841aebb2b421fadb31f3c7eef27898f21274a8e5b45c4f2bccb40f9ed", - "sha256:daedcfbf3b24b2b687e35b33252a9315425c2dd06a085a36906d516135bdd60e", - "sha256:e7ad1ec621db2c5ad47924f63561f75abfd4fff669c62c8cc99c169c90432f59", - "sha256:f14fb6c4058772a0d74d82874d3b89d7264d89b4ed7fa0413ea0ef8112b268b9", - "sha256:f16c7b6b98bc400d180f05e65e2236ef4ee9d71f3815280558582670e1e67536", - "sha256:f2d9eb92b26600ae6e8092f66da4bcede1b61a647c9080d6b44c148aff3a8ea4", - "sha256:ffe94f9d17800610dda5282d7f6facfc216d79a93dd728a03d2f21cff3af7cc6" + "sha256:01b4e10027aef5bb9ecefbc26f5df3368ce34aef81df43850f701e716e3fe16d", + "sha256:0fc5aa1b1acf7f61af46fe0414e6a4d0c234b339db4c03a63da48599acf1cbfc", + "sha256:1396eb7151e0558b1f817e4b9d7697d5599e5c40d839a9f7270bd90af994ad82", + "sha256:18e84a3ec5e73adcb4187b8e5541b2ad61d716026ed9863267e650300d8bea33", + "sha256:19adf2848b80cb349b9891cc854581bbf24c338be9a3260e73159bdeb2264464", + "sha256:20ee0475aa2ba437b0a14806f125d696f90a8433d820fb558fdd6f052acde103", + "sha256:26798795097bdeb571f13942beef7e0b60125397811c75b7aa9214d89880dd1d", + "sha256:26e707a4eb851ec27bb969b5f1413b9b2eac28fe34271fa72329100317ea7c73", + "sha256:2a3c7ad01553b27ec553688a1e6445e7f40355fb37d925c11fcb50b504e367f8", + "sha256:2f07b27dbf303ea53f4147a7922ce91a26b34a0011131471d8aaf73151fdee9a", + "sha256:316f0cf543013d0c085e15a2c8abe0db70f93c9722c0f99b6f3318ff69477d70", + "sha256:31d11a600eea0c60de22c8bdcb58cda63c762891facdcb74248c36713240987f", + "sha256:334ef3ffd0df87ea83a0054454336159f8ad9c1b389e19c0032d9cb8410660e6", + "sha256:358ba4693c01022d507b96a980ded855a32dbdccc3c9331d0667be5e967f30ed", + "sha256:3a6568bc53103df260f5c7d2da36dffc5202b9a36c85540bba1836a774943794", + "sha256:444bf2f44264578c4085bb04493bfed0e5c1b4fe7c2704504d769f955cc78fe4", + "sha256:47a00b22c52ee59dffc2aad02d0bbfb20c26ec5b8de8900492bf13ad6901cf35", + "sha256:4c067db43b331fc709080d441cb2e157114fec60749667d12186cc3fc8e7a951", + "sha256:4c092310f804a5d45a1bcaa4191d6d016c457b6ed3982a622c35f729ff1c7f6b", + "sha256:53b711b33134e292ef8499835a3df10909c58df53a2a0308f598c432e9a62892", + "sha256:568d6bee70652d8a5af1cd3eec48b4ca1696fb1773b80719ebbd2925b72cb8f6", + "sha256:56fa55032782b7f8e0bf6956420d11e2d4e9860598dfe9c504edec53af0fc372", + "sha256:5a2c492680c61b440272341294172fa3b3751797b1ab983533a770e4fb0a67ac", + "sha256:61235cc39b5b2f593086d1d38f3fc130b2d125bd8fc8621d35bc5b6bdeb92bd2", + "sha256:619ac9aaf681434b4d4718d1b31aa2f0fce64f2b3f8435688fcbdc0c818b6c54", + "sha256:6238ac1f483494011abde5286282afdfacd8926659e222ba9b74c67008d3a58c", + "sha256:63752a72ca4d4e1386278bd43d14232f51718b409e7ac86bcf8810826b531113", + "sha256:6fdc5ccb43864065d40dd838437952e9e3da9821b7eac605ba46ada77f846bdf", + "sha256:7abc3a6825a346fa4621a6f63e3b662bbb9e0f6ffc32d30a459d695f20fb1a8b", + "sha256:7aef381bb9ae8a3821abd7f9d4d93978dbd99072b48522e181baeffcd95b56ae", + "sha256:80df3caf251fe61a3f0c9614adc6e2bfcffd1cd3345280896766712fb4b4d6d7", + "sha256:95f970f34b59987dee6f360d2e7d30e181d58957b85dff929eee4423739bd151", + "sha256:993257f6ca3cde55332af1f62af3e04ca89ce63c08b56a387cdd46136c72f2fa", + "sha256:9c0a57390549affc2b5dda24a38de03a5c7cbc58750cd161ff5d106c3c6eec80", + "sha256:a0794e987d55d2f719cc95fcf980fc62d12b80e287e6a761c4be14c60bd9fecc", + "sha256:a3b98121e68bf370dd8ea09df67e916f93ea95b52fc010902312168c4d1aff5d", + "sha256:a60756d55f0887023b3899e6c2923ba5f0042fb11b1d17810b4e07395404f33e", + "sha256:a676bd2fbc2309092b9bbb0083d35718b5420af3a42135ebb1e4c3633f56604d", + "sha256:a732838c78554c1257ff2492f5c8c4c7312d0aecd7f732149e255f3749edd5ee", + "sha256:ae65d65fde4135ef423a2608587c9ef585a3551fc2e4e431e7c7e527047581be", + "sha256:b070a4f064a9edb70f921bfdc270725cff7a78c22036dd37a767c51393fb956f", + "sha256:b6da85949aa91e9f8c521681344bd2e163de894a5492337fba8b05c409225a4f", + "sha256:bbf47110765b2a999803a7de457567389253f8670f7daafb98e059c899ce9764", + "sha256:c06b3f998d2d7160db58db69adfb807d2ec307e883e2f17f6b87a1ef6c723f11", + "sha256:c318fb70542be16d3d4063cde6010b1e4d328993a793529c15a619251f517c39", + "sha256:c4aef42e5fa4c9d5a99f751fb79caa880dac7eaf8a65121549318b984676a1b7", + "sha256:c9ca545e93a9c2a3bdaa2e6e21f7a43267ff0813e8055adf2b591c13164c0c57", + "sha256:da2c3220eb55c4239dd8b982e213da0b79023cac59fe54ca09365f2bc7e4ad32", + "sha256:dd8055da300535eefd446b30995c0813cc4394873c9509323762a93e97c04c03", + "sha256:e2b46e092ea54b732d98c476720386ff2ccd126de1e52076b470b117bff7e409", + "sha256:e334c4f39a2863a239d38b5829e442a87f241a92da9941861ee6ec5d6380b7fe", + "sha256:e5c54f04ca42bbb5153aec5d4f2e3d9f81e316945220ac318abd4083308143f5", + "sha256:f96333f9d2517c752c20a35ff95de5fc2763ac8cdb1653df0f6f45d281620606" ], "index": "pypi", - "version": "==3.7.1" + "version": "==3.10.1" }, "redis": { "hashes": [ - "sha256:8a1900a9f2a0a44ecf6e8b5eb3e967a9909dfed219ad66df094f27f7d6f330fb", - "sha256:a22ca993cea2962dbb588f9f30d0015ac4afcc45bee27d3978c0dbe9e97c6c0f" + "sha256:0dcfb335921b88a850d461dc255ff4708294943322bd55de6cfd68972490ca1f", + "sha256:b205cffd05ebfd0a468db74f0eedbff8df1a7bfc47521516ade4692991bb0833" ], "index": "pypi", - "version": "==2.10.6" + "version": "==3.4.1" }, "werkzeug": { "hashes": [ - "sha256:97660b282aa7e29f94f3fe378e5c7162d7ab9d601a8dbb1cbb2ffc8f0e54607d", - "sha256:cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3" + "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", + "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], - "index": "pypi", - "version": "==0.15.3" + "version": "==1.0.1" } }, "develop": {} diff --git a/chapter_12/QASystem/Readme.md b/chapter_12/QASystem/Readme.md new file mode 100644 index 0000000..4334eb8 --- /dev/null +++ b/chapter_12/QASystem/Readme.md @@ -0,0 +1,11 @@ +## 初始化项目 + +当你第一次运行的时候,请按顺序依次运行如下几个命令,来初始化实例数据: + +```bash +python3 generate_question.py +python3 generate_answer.py +python3 generate_vote.py +``` + +除此之外,剩下的操作请根据书上所说顺序执行。 \ No newline at end of file diff --git a/chapter_12/QASystem/generate_answer.py b/chapter_12/QASystem/generate_answer.py index ca948c2..6ffe663 100644 --- a/chapter_12/QASystem/generate_answer.py +++ b/chapter_12/QASystem/generate_answer.py @@ -2,67 +2,76 @@ from bson import ObjectId handler = pymongo.MongoClient().qa_system.answer -answer = [ - {'author': '王小一', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc23"), - 'answer': '毫无疑问,必定为2', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 10, - 'vote_down': 200}, - {'author': '钱小九', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc23"), - 'answer': '楼上的,自问自答有意思吗?', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 100, - 'vote_down': 20}, - {'author': '孙小十', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc23"), - 'answer': '在某些情况下可能等于三。题主应该补充必要信息。', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 0, - 'vote_down': 100}, - {'author': '张若虚', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc26"), - 'answer': '这是我写的诗,下一句是:愿逐月华流照君。诗名为:《春江花月夜》', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 1000, - 'vote_down': 0}, - {'author': '阿东莫夫', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc24"), - 'answer': '这是阿西莫夫的《银河系漫游指南》里面的', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 20, - 'vote_down': 21}, - {'author': '道格拉斯', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc24"), - 'answer': '楼上的别乱说啊,《银河系漫游指南》是英国作家道格拉斯·亚当斯写的。', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 60, - 'vote_down': 10}, - {'author': '张起灵', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc24"), - 'answer': '是英国作家道格拉斯·亚当斯写的《银河系漫游指南》里面的原话。原因是42在ASCII码中对应了*号,而*号在通配符中代表一切', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 200, - 'vote_down': 1}, - {'author': '老司机', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc29"), - 'answer': '楼主,这不是去幼儿园的车!我只说作者是兰陵笑笑生,至于书名嘛,哈哈哈哈哈。', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 0, - 'vote_down': 100}, - {'author': '小文青', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc29"), - 'answer': '警察叔叔,这里有人在飙车。我认为兰陵笑笑生应该说王世贞。至于书名嘛,哈哈哈哈哈。', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 30, - 'vote_down': 0}, - {'author': '欧阳掏粪', - 'question_id': ObjectId("5b8b8fb9d3a25054b7a0dc29"), - 'answer': '《明朝那些事儿》里面讲了的,你去看看。', - 'answer_time': '2018-07-23 12:18:11', - 'vote_up': 40, - 'vote_down': 3}, -] +answer = [{'_id': ObjectId('5ead1083896e60e26dcc67b4'), + 'answer': '毫无疑问,必定为2', + 'answer_time': '2018-07-23 12:18:11', + 'author': '王小一', + 'question_id': ObjectId('5ead107ed1174b0308255c35'), + 'vote_down': 200, + 'vote_up': 10}, + {'_id': ObjectId('5ead1083896e60e26dcc67b5'), + 'answer': '楼上的,自问自答有意思吗?', + 'answer_time': '2018-07-23 12:18:11', + 'author': '钱小九', + 'question_id': ObjectId('5ead107ed1174b0308255c35'), + 'vote_down': 20, + 'vote_up': 100}, + {'_id': ObjectId('5ead1083896e60e26dcc67b6'), + 'answer': '在某些情况下可能等于三。题主应该补充必要信息。', + 'answer_time': '2018-07-23 12:18:11', + 'author': '孙小十', + 'question_id': ObjectId('5ead107ed1174b0308255c35'), + 'vote_down': 100, + 'vote_up': 0}, + {'_id': ObjectId('5ead1083896e60e26dcc67b7'), + 'answer': '这是我写的诗,下一句是:愿逐月华流照君。诗名为:《春江花月夜》', + 'answer_time': '2018-07-23 12:18:11', + 'author': '张若虚', + 'question_id': ObjectId('5ead107ed1174b0308255c38'), + 'vote_down': 0, + 'vote_up': 1000}, + {'_id': ObjectId('5ead1083896e60e26dcc67b8'), + 'answer': '这是阿西莫夫的《银河系漫游指南》里面的', + 'answer_time': '2018-07-23 12:18:11', + 'author': '阿东莫夫', + 'question_id': ObjectId('5ead107ed1174b0308255c36'), + 'vote_down': 21, + 'vote_up': 20}, + {'_id': ObjectId('5ead1083896e60e26dcc67b9'), + 'answer': '楼上的别乱说啊,《银河系漫游指南》是英国作家道格拉斯·亚当斯写的。', + 'answer_time': '2018-07-23 12:18:11', + 'author': '道格拉斯', + 'question_id': ObjectId('5ead107ed1174b0308255c36'), + 'vote_down': 10, + 'vote_up': 60}, + {'_id': ObjectId('5ead1083896e60e26dcc67ba'), + 'answer': '是英国作家道格拉斯·亚当斯写的《银河系漫游指南》里面的原话。原因是42在ASCII码中对应了*号,而*号在通配符中代表一切', + 'answer_time': '2018-07-23 12:18:11', + 'author': '张起灵', + 'question_id': ObjectId('5ead107ed1174b0308255c36'), + 'vote_down': 1, + 'vote_up': 200}, + {'_id': ObjectId('5ead1083896e60e26dcc67bb'), + 'answer': '楼主,这不是去幼儿园的车!我只说作者是兰陵笑笑生,至于书名嘛,哈哈哈哈哈。', + 'answer_time': '2018-07-23 12:18:11', + 'author': '老司机', + 'question_id': ObjectId('5ead107ed1174b0308255c3b'), + 'vote_down': 100, + 'vote_up': 0}, + {'_id': ObjectId('5ead1083896e60e26dcc67bc'), + 'answer': '警察叔叔,这里有人在飙车。我认为兰陵笑笑生应该说王世贞。至于书名嘛,哈哈哈哈哈。', + 'answer_time': '2018-07-23 12:18:11', + 'author': '小文青', + 'question_id': ObjectId('5ead107ed1174b0308255c3b'), + 'vote_down': 0, + 'vote_up': 30}, + {'_id': ObjectId('5ead1083896e60e26dcc67bd'), + 'answer': '《明朝那些事儿》里面讲了的,你去看看。', + 'answer_time': '2018-07-23 12:18:11', + 'author': '欧阳掏粪', + 'question_id': ObjectId('5ead107ed1174b0308255c3b'), + 'vote_down': 3, + 'vote_up': 40}] + handler.insert_many(answer) \ No newline at end of file diff --git a/chapter_12/QASystem/generate_question.py b/chapter_12/QASystem/generate_question.py index e5dc37a..758d02c 100644 --- a/chapter_12/QASystem/generate_question.py +++ b/chapter_12/QASystem/generate_question.py @@ -1,50 +1,56 @@ import pymongo +from bson import ObjectId handler = pymongo.MongoClient().qa_system.question -question = [ - {'author': '王小一', - 'title': '1+1=?', - 'detail': '请问1+1等于几?', - 'ask_time': '2018-07-23 12:18:11', - 'vote_up': 0, - 'vote_down': 100}, - {'author': '张小二', - 'title': '为什么说42 is the answer of all?', - 'detail': '这句话出自哪里?', - 'ask_time': '2018-07-23 12:18:11', - 'vote_up': 100, - 'vote_down': 0}, - {'author': '刘小三', - 'title': '明天天气如何?', - 'detail': '明天会下雨吗?', - 'ask_time': '2018-07-23 12:18:11', - 'vote_up': 10, - 'vote_down': 10}, - {'author': '旺小四', - 'title': '此时相忘不相闻下一句是什么?', - 'detail': '还有,这是谁写的诗?', - 'ask_time': '2018-07-23 12:18:11', - 'vote_up': 100, - 'vote_down': 3}, - {'author': '赵小五', - 'title': '把微波炉温度调低一些,可以孵鸡蛋吗?', - 'detail': '孵蛋除了温度还需要什么?', - 'ask_time': '2018-07-23 12:18:11', - 'vote_up': 23, - 'vote_down': 3}, - {'author': '朱小六', - 'title': '四大名著你喜欢哪一本?', - 'detail': '请回答具体原因。', - 'ask_time': '2018-07-23 12:18:11', - 'vote_up': 70, - 'vote_down': 2}, - {'author': '马小七', - 'title': '你知道明朝时期的四大名著,除了《西游记》《水浒传》和《三国演义》还有一本是什么吗?', - 'detail': '这本书的作者又是是呢?', - 'ask_time': '2018-07-23 12:18:11', - 'vote_up': 120, - 'vote_down': 16}, -] +question = [{'_id': ObjectId('5ead107ed1174b0308255c35'), + 'ask_time': '2018-07-23 12:18:11', + 'author': '王小一', + 'detail': '请问1+1等于几?', + 'title': '1+1=?', + 'vote_down': 100, + 'vote_up': 0}, + {'_id': ObjectId('5ead107ed1174b0308255c36'), + 'ask_time': '2018-07-23 12:18:11', + 'author': '张小二', + 'detail': '这句话出自哪里?', + 'title': '为什么说42 is the answer of all?', + 'vote_down': 0, + 'vote_up': 100}, + {'_id': ObjectId('5ead107ed1174b0308255c37'), + 'ask_time': '2018-07-23 12:18:11', + 'author': '刘小三', + 'detail': '明天会下雨吗?', + 'title': '明天天气如何?', + 'vote_down': 10, + 'vote_up': 10}, + {'_id': ObjectId('5ead107ed1174b0308255c38'), + 'ask_time': '2018-07-23 12:18:11', + 'author': '旺小四', + 'detail': '还有,这是谁写的诗?', + 'title': '此时相忘不相闻下一句是什么?', + 'vote_down': 3, + 'vote_up': 100}, + {'_id': ObjectId('5ead107ed1174b0308255c39'), + 'ask_time': '2018-07-23 12:18:11', + 'author': '赵小五', + 'detail': '孵蛋除了温度还需要什么?', + 'title': '把微波炉温度调低一些,可以孵鸡蛋吗?', + 'vote_down': 3, + 'vote_up': 23}, + {'_id': ObjectId('5ead107ed1174b0308255c3a'), + 'ask_time': '2018-07-23 12:18:11', + 'author': '朱小六', + 'detail': '请回答具体原因。', + 'title': '四大名著你喜欢哪一本?', + 'vote_down': 2, + 'vote_up': 70}, + {'_id': ObjectId('5ead107ed1174b0308255c3b'), + 'ask_time': '2018-07-23 12:18:11', + 'author': '马小七', + 'detail': '这本书的作者又是是呢?', + 'title': '你知道明朝时期的四大名著,除了《西游记》《水浒传》和《三国演义》还有一本是什么吗?', + 'vote_down': 16, + 'vote_up': 120}] handler.insert_many(question) \ No newline at end of file diff --git a/chapter_12/QASystem/generate_vote.py b/chapter_12/QASystem/generate_vote.py new file mode 100644 index 0000000..863d37d --- /dev/null +++ b/chapter_12/QASystem/generate_vote.py @@ -0,0 +1,32 @@ +import redis +import pymongo + + +client = redis.Redis() +db = pymongo.MongoClient().qa_system +question_handler = db.question +answer_handler = db.answer + + +def generate_question_vote(): + for question in question_handler.find(): + doc_id = str(question['_id']) + vote_up = question['vote_up'] + vote_down = question['vote_down'] + value = vote_up - vote_down + client.zadd('qa_system:question:vote', {doc_id: value}) + + +def generate_answer_vote(): + for answer in answer_handler.find(): + question_id = str(answer['question_id']) + key = f'qa_system:answer:{question_id}:vote' + vote_up = answer['vote_up'] + vote_down = answer['vote_down'] + value = vote_up - vote_down + answer_id = str(answer['_id']) + client.zadd(key, {answer_id: value}) + + +generate_question_vote() +generate_answer_vote() From e6e7833198d71db12910066b0eb2d1959068328a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 May 2020 06:45:55 +0000 Subject: [PATCH 03/17] Bump werkzeug from 0.14.1 to 0.15.3 in /chapter_11/QASystem Bumps [werkzeug](https://github.com/pallets/werkzeug) from 0.14.1 to 0.15.3. - [Release notes](https://github.com/pallets/werkzeug/releases) - [Changelog](https://github.com/pallets/werkzeug/blob/master/CHANGES.rst) - [Commits](https://github.com/pallets/werkzeug/compare/0.14.1...0.15.3) Signed-off-by: dependabot[bot] --- chapter_11/QASystem/Pipfile.lock | 139 ++++++++++++++++--------------- 1 file changed, 73 insertions(+), 66 deletions(-) diff --git a/chapter_11/QASystem/Pipfile.lock b/chapter_11/QASystem/Pipfile.lock index 836a658..a0532c9 100644 --- a/chapter_11/QASystem/Pipfile.lock +++ b/chapter_11/QASystem/Pipfile.lock @@ -3,19 +3,6 @@ "hash": { "sha256": "ce1ec242f6932c7ef93c7077e2a9309dce99f118679774ffc8ca62b9aba82cf5" }, - "host-environment-markers": { - "implementation_name": "cpython", - "implementation_version": "3.6.5", - "os_name": "posix", - "platform_machine": "x86_64", - "platform_python_implementation": "CPython", - "platform_release": "17.7.0", - "platform_system": "Darwin", - "platform_version": "Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64", - "python_full_version": "3.6.5", - "python_version": "3.6", - "sys_platform": "darwin" - }, "pipfile-spec": 6, "requires": {}, "sources": [ @@ -29,87 +16,105 @@ "default": { "click": { "hashes": [ - "sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d", - "sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b" + "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", + "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" ], - "version": "==6.7" + "version": "==7.1.2" }, "flask": { "hashes": [ - "sha256:a080b744b7e345ccfcbc77954861cb05b3c63786e93f2b3875e0913d44b43f05", - "sha256:2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48" + "sha256:2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48", + "sha256:a080b744b7e345ccfcbc77954861cb05b3c63786e93f2b3875e0913d44b43f05" ], + "index": "pypi", "version": "==1.0.2" }, "itsdangerous": { "hashes": [ - "sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519" + "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", + "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749" ], - "version": "==0.24" + "version": "==1.1.0" }, "jinja2": { "hashes": [ - "sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd", - "sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4" + "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", + "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" ], - "version": "==2.10" + "version": "==2.11.2" }, "markupsafe": { "hashes": [ - "sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665" + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" ], - "version": "==1.0" + "version": "==1.1.1" }, "pymongo": { "hashes": [ + "sha256:08dea6dbff33363419af7af3bf2e9a373ff71eb22833dd7063f9b953f09a0bdf", + "sha256:0949110db76eb1b54cecfc0c0f8468a8b9a7fd42ba23fd0d4a37d97e0b4ca203", "sha256:0c31a39f440801cc8603547ccaacf4cb1f02b81af6ba656621c13677b27f4426", + "sha256:1e10b3fda5677d360440ebd12a1185944dc81d9ea9acf0c6b0681013b3fb9bc2", "sha256:1f59440b993666a417ba1954cfb1b7fb11cb4dea1a1d2777897009f688d000ee", - "sha256:aec4ea43a1b8e9782246a259410f66692f2d3aa0f03c54477e506193b0781cb6", - "sha256:daedcfbf3b24b2b687e35b33252a9315425c2dd06a085a36906d516135bdd60e", - "sha256:966d987975aa3b4cfcdf1495930ff6ecb152fafe8e544e40633e41b24ca3e1c5", - "sha256:8e939dfa7d16609b99eb4d1fd2fc74f7a90f4fd0aaf31d611822daaff456236f", - "sha256:c8669f96277f140797e0ff99f80bd706271674942672a38ed694e2bfa66f3900", - "sha256:ce7c91463ad21ac72fc795188292b01c8366cf625e2d1e5ed473ce127b844f60", + "sha256:2b5a3806d9f656c14e9d9b693a344fc5684fdd045155594be0c505c6e9410a94", "sha256:4a14e2d7c2c0e07b5affcfbfc5c395d767f94bb1a822934a41a3b5371cde1458", - "sha256:562c353079e8ce7e2ad611fd7436a72f5df97be72bca59ae9ebf789a724afd5c", - "sha256:52999666ad01de885653e1f74a86c2a6520d1004afec475180bebf3d7393a8fc", - "sha256:d776d8d47884e6ad39ff8a301f1ae6b7d2186f209218cf024f43334dbba79c64", "sha256:4cb50541225208b37786fdb0de632e475c4f00ec4792579df551ef48d6999d69", - "sha256:ccf00549efaf6f8d5b35b654beb9aed2b788a5b33b05606eb818ddaa4e924ea3", - "sha256:1e10b3fda5677d360440ebd12a1185944dc81d9ea9acf0c6b0681013b3fb9bc2", - "sha256:b752088a2f819f163d11dfdbbe627b27eef9d8478c7e57d42c5e7c600fee434e", - "sha256:08dea6dbff33363419af7af3bf2e9a373ff71eb22833dd7063f9b953f09a0bdf", - "sha256:ffe94f9d17800610dda5282d7f6facfc216d79a93dd728a03d2f21cff3af7cc6", - "sha256:b73f889f032fbef05863f5056b46468a8262ae83628898e20b10bbbb79a3617e", - "sha256:0949110db76eb1b54cecfc0c0f8468a8b9a7fd42ba23fd0d4a37d97e0b4ca203", + "sha256:52999666ad01de885653e1f74a86c2a6520d1004afec475180bebf3d7393a8fc", + "sha256:562c353079e8ce7e2ad611fd7436a72f5df97be72bca59ae9ebf789a724afd5c", "sha256:5ce2a71f473f4703daa8d6c61a00b35ce625a7f5015b4371e3af728dafca296a", "sha256:6613e633676168a4500e5e6bb6e3e64d3fdb96d2dc472eb4b99235fb4141adb1", - "sha256:2b5a3806d9f656c14e9d9b693a344fc5684fdd045155594be0c505c6e9410a94", + "sha256:8330406f294df118399c721f80979f2516447bcc73e4262826687872c864751e", + "sha256:8e939dfa7d16609b99eb4d1fd2fc74f7a90f4fd0aaf31d611822daaff456236f", "sha256:8fa4303e1f50d9f0c8f2f7833b5a370a94d19d41449def62b34ae072126b4dfd", + "sha256:966d987975aa3b4cfcdf1495930ff6ecb152fafe8e544e40633e41b24ca3e1c5", + "sha256:aec4ea43a1b8e9782246a259410f66692f2d3aa0f03c54477e506193b0781cb6", + "sha256:b73f889f032fbef05863f5056b46468a8262ae83628898e20b10bbbb79a3617e", + "sha256:b752088a2f819f163d11dfdbbe627b27eef9d8478c7e57d42c5e7c600fee434e", + "sha256:c8669f96277f140797e0ff99f80bd706271674942672a38ed694e2bfa66f3900", + "sha256:ccf00549efaf6f8d5b35b654beb9aed2b788a5b33b05606eb818ddaa4e924ea3", + "sha256:ce7c91463ad21ac72fc795188292b01c8366cf625e2d1e5ed473ce127b844f60", + "sha256:d776d8d47884e6ad39ff8a301f1ae6b7d2186f209218cf024f43334dbba79c64", + "sha256:dab0f63841aebb2b421fadb31f3c7eef27898f21274a8e5b45c4f2bccb40f9ed", + "sha256:daedcfbf3b24b2b687e35b33252a9315425c2dd06a085a36906d516135bdd60e", "sha256:e7ad1ec621db2c5ad47924f63561f75abfd4fff669c62c8cc99c169c90432f59", - "sha256:f2d9eb92b26600ae6e8092f66da4bcede1b61a647c9080d6b44c148aff3a8ea4", + "sha256:f14fb6c4058772a0d74d82874d3b89d7264d89b4ed7fa0413ea0ef8112b268b9", "sha256:f16c7b6b98bc400d180f05e65e2236ef4ee9d71f3815280558582670e1e67536", - "sha256:dab0f63841aebb2b421fadb31f3c7eef27898f21274a8e5b45c4f2bccb40f9ed", - "sha256:8330406f294df118399c721f80979f2516447bcc73e4262826687872c864751e", - "sha256:8fae0e607d954aa5f2acfbb2be79f7359521b2b9a4458a995c5baf48868bc4b4", - "sha256:075686718e64483b95abf224317925687742e810dbf95d5750c8fb36cf88a5ec", - "sha256:69d757cc9786e1417cc44230073c82e490f8f5c4a71299de7dba8fbce7193f8f", - "sha256:e750ceff90998e53c0f4b6a3080ec1ccf5aa264e290996b963a59ab6a782d5a5", - "sha256:b1f6cac26ed5aaf811e6310d5829506eee7f0c5f113fd5a5c2bd4c584d6a994f", - "sha256:75183c8336e25b4b879dc8fc8d13a585abb5e0042d0ddbd4b54fb36c11f849bf", - "sha256:1dcde7e63d50c957fc377a6cdf56c90635015a3a41b894be96d9421458608706", - "sha256:34bb6b32969677d7f6a9694945899c5c9324d93094874b5fe9c0a4aa10323a49", - "sha256:e4b348c2f51cb1bd75a31f3fc53eee59975ff7349def12f8f6e2d6cc198e849a", - "sha256:d3e9c3ef66c99e11e432a1f1cf51dbe82b9ced646e8fff3309e52d4318561de5", - "sha256:457faf75fc9e8c25625240436508c4e482f977a31363a84a9a25fabb4b8a2194", - "sha256:e9a6b224362bbdfc3e18fcb03c449422bf3a826b7365a77fcd863bcdef020b7c", - "sha256:3a7ed4a2ad7abc4bc29a5ec181e23bd370ba4003767260519f825db96f1daf63", - "sha256:8c1436e9b65fd2c0c46141cef108cae8cd303c0d233af7c0e0de18b3c59c6dcf", - "sha256:847c8ce15a1b5634c7a62732899f339d168a443115cd9bc37c52d75fb362bca1", - "sha256:bf9e9bcb2f4a8fa1cc5e956c92a9c5f8a6cf5d4f81e2e8a696ff5af5626d66b6", - "sha256:6192bf37933d16d5348e9d7ca6f3b2a45fbafe110ac77460e67dc856913d1b2f", - "sha256:f14fb6c4058772a0d74d82874d3b89d7264d89b4ed7fa0413ea0ef8112b268b9" + "sha256:f2d9eb92b26600ae6e8092f66da4bcede1b61a647c9080d6b44c148aff3a8ea4", + "sha256:ffe94f9d17800610dda5282d7f6facfc216d79a93dd728a03d2f21cff3af7cc6" ], + "index": "pypi", "version": "==3.7.1" }, "redis": { @@ -117,14 +122,16 @@ "sha256:8a1900a9f2a0a44ecf6e8b5eb3e967a9909dfed219ad66df094f27f7d6f330fb", "sha256:a22ca993cea2962dbb588f9f30d0015ac4afcc45bee27d3978c0dbe9e97c6c0f" ], + "index": "pypi", "version": "==2.10.6" }, "werkzeug": { "hashes": [ - "sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b", - "sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c" + "sha256:97660b282aa7e29f94f3fe378e5c7162d7ab9d601a8dbb1cbb2ffc8f0e54607d", + "sha256:cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3" ], - "version": "==0.14.1" + "index": "pypi", + "version": "==0.15.3" } }, "develop": {} From 5aeb9f1c6ffb88e3a203edcb6cefc26bd5dca535 Mon Sep 17 00:00:00 2001 From: janetat Date: Mon, 22 Jun 2020 00:03:38 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E7=94=A8join=E4=BB=A3=E6=9B=BF=E4=B8=BB?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E7=9A=84sleep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_2/queue_by_python.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter_2/queue_by_python.py b/chapter_2/queue_by_python.py index e092a65..53bf1f3 100644 --- a/chapter_2/queue_by_python.py +++ b/chapter_2/queue_by_python.py @@ -37,5 +37,5 @@ def run(self): producer.start() consumer.start() -while True: - time.sleep(1) +producer.join() +consumer.join() From 2ca8b8451b4c96de3597d94bfdfd866660247885 Mon Sep 17 00:00:00 2001 From: janetat Date: Mon, 22 Jun 2020 00:07:34 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=E7=94=A8join=E4=BB=A3=E6=9B=BF=E4=B8=BB?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E7=9A=84while=EF=BC=8C=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E5=86=97=E4=BD=99=E7=9A=84re=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_2/consumer_by_redis.py | 5 +---- chapter_2/producer_by_redis.py | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/chapter_2/consumer_by_redis.py b/chapter_2/consumer_by_redis.py index 957da95..132eee2 100644 --- a/chapter_2/consumer_by_redis.py +++ b/chapter_2/consumer_by_redis.py @@ -3,9 +3,7 @@ import redis import random from threading import Thread -import re -re.S class Consumer(Thread): def __init__(self): @@ -22,5 +20,4 @@ def run(self): consumer = Consumer() consumer.start() -while True: - time.sleep(1) +consumer.join() diff --git a/chapter_2/producer_by_redis.py b/chapter_2/producer_by_redis.py index a5f7776..f9af216 100644 --- a/chapter_2/producer_by_redis.py +++ b/chapter_2/producer_by_redis.py @@ -18,7 +18,7 @@ def run(self): self.queue.rpush('producer', json.dumps((a, b))) time.sleep(2) + producer = Producer() producer.start() -while True: - time.sleep(1) +producer.join() From 386f4db4b45ffe9f5058bddb324b46ee3a9d1054 Mon Sep 17 00:00:00 2001 From: janetat Date: Mon, 22 Jun 2020 11:19:31 +0800 Subject: [PATCH 06/17] =?UTF-8?q?[chapter=5F3]=E5=AE=8C=E5=96=84chapter=5F?= =?UTF-8?q?3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_3/{chapter_3.py => example_data_1.py} | 31 ++++++++++++++----- ...y => example_data_2_compare_difference.py} | 20 +++++++++--- ...e_data_2.py => example_data_2_generate.py} | 20 ++++++------ 3 files changed, 50 insertions(+), 21 deletions(-) rename chapter_3/{chapter_3.py => example_data_1.py} (51%) rename chapter_3/{compare_difference.py => example_data_2_compare_difference.py} (53%) rename chapter_3/{generate_example_data_2.py => example_data_2_generate.py} (71%) diff --git a/chapter_3/chapter_3.py b/chapter_3/example_data_1.py similarity index 51% rename from chapter_3/chapter_3.py rename to chapter_3/example_data_1.py index 95ed978..3c188ea 100644 --- a/chapter_3/chapter_3.py +++ b/chapter_3/example_data_1.py @@ -1,12 +1,23 @@ from pymongo import MongoClient + client = MongoClient() -database= client.chapter_3 +database = client.chapter_3 collection = database.example_data_1 -# rows = collection.find({'age': {'$lt': 25, '$gt': 21}, -# 'name': {'$ne': '夏侯小七'}}) -# for row in rows: -# print(row) +# 1. 批量插入 +# data_list = [ +# {'name': '朱小三', 'age': 20, 'address': '北京'}, +# {'name': '刘小四', 'age': 21, 'address': '上海'}, +# {'name': '马小五', 'age': 22, 'address': '山东'}, +# {'name': '夏侯小七', 'age': 23, 'address': '河北'}, +# {'name': '公孙小八', 'age': 24, 'address': '广州'}, +# {'name': '慕容小九', 'age': 25, 'address': '杭州'}, +# {'name': '欧阳小十', 'age': 26, 'address': '深圳'}, +# +# ] +# collection.insert_many(data_list) + +# 2. 更新 # result = collection.update_many( # {'name': '公孙小八'}, # {'$set': {'address': '美国', 'age': 80}} @@ -17,8 +28,14 @@ # 'age': 0, # 'address': '里世界'}}, # upsert=True) + +# 3. 删除 # result = collection.delete_many({'age': 0}) # print(result) - - +# 4. 查询 +rows = collection.find({}) +# rows = collection.find({'age': {'$lt': 25, '$gt': 21}, +# 'name': {'$ne': '夏侯小七'}}) +for row in rows: + print(row) \ No newline at end of file diff --git a/chapter_3/compare_difference.py b/chapter_3/example_data_2_compare_difference.py similarity index 53% rename from chapter_3/compare_difference.py rename to chapter_3/example_data_2_compare_difference.py index 74566c5..e2c6034 100644 --- a/chapter_3/compare_difference.py +++ b/chapter_3/example_data_2_compare_difference.py @@ -1,13 +1,23 @@ from pymongo import MongoClient from bson import ObjectId + client = MongoClient() -database= client.chapter_3 +database = client.chapter_3 collection = database.example_data_2 + +# 1. 空值 # rows = collection.find({'grade': null}) -# rows = collection.find({'grade': None}) +rows = collection.find({'grade': None}) + +# 2. 布尔值 # rows = collection.find({'student': True}, {'_id': 0}) + +# 3. 排序参数 # rows = collection.find({}, {'_id': 0}).sort('age', -1) -rows = collection.find({'_id': ObjectId('5b2f75d26b78a61364d09f45')}, - {'_id': 0}) + +# 4. 查询_id +# rows = collection.find({'_id': ObjectId('5b2f75d26b78a61364d09f45')}, +# {'_id': 0}) + for row in rows: - print(row) + print(row) \ No newline at end of file diff --git a/chapter_3/generate_example_data_2.py b/chapter_3/example_data_2_generate.py similarity index 71% rename from chapter_3/generate_example_data_2.py rename to chapter_3/example_data_2_generate.py index a836760..27d7c78 100644 --- a/chapter_3/generate_example_data_2.py +++ b/chapter_3/example_data_2_generate.py @@ -1,14 +1,16 @@ from pymongo import MongoClient + client = MongoClient() -database= client.chapter_3 +database = client.chapter_3 collection = database.example_data_2 + collection.insert_many([ {'name': '李大娃', 'age': 10, 'grade': '五年级', 'student': True, 'interest': '唱歌'}, - {'name': '张二娃', 'age': 12, 'grade': '六年级', 'student': True, 'interest': '跳舞'}, - {'name': '马三娃', 'age': 14, 'grade': '八年级', 'student': True, 'interest': '下棋'}, - {'name': '刘四娃', 'age': 16, 'grade': None, 'student': False, 'interest': '无'}, - {'name': '朱五娃', 'age': 18, 'grade': '高三', 'student': True, 'interest': '写字'}, - {'name': '高六娃', 'age': 8, 'grade': '一年级', 'student': True, 'interest': '学习'}, - {'name': '赵气娃', 'age': 10, 'grade': '五年级', 'student': True, 'interest': '乐高'}, - {'name': '葫芦娃', 'age': 100, 'grade': None, 'student': False, 'interest': '喷火'}, -]) \ No newline at end of file + {'name': '张二娃', 'age': 12, 'grade': '六年级', 'student': True, 'interest': '跳舞'}, + {'name': '马三娃', 'age': 14, 'grade': '八年级', 'student': True, 'interest': '下棋'}, + {'name': '刘四娃', 'age': 16, 'grade': None, 'student': False, 'interest': '无'}, + {'name': '朱五娃', 'age': 18, 'grade': '高三', 'student': True, 'interest': '写字'}, + {'name': '高六娃', 'age': 8, 'grade': '一年级', 'student': True, 'interest': '学习'}, + {'name': '赵气娃', 'age': 10, 'grade': '五年级', 'student': True, 'interest': '乐高'}, + {'name': '葫芦娃', 'age': 100, 'grade': None, 'student': False, 'interest': '喷火'}, +]) From bb784992c7f94da9c27fbf5f64d4f2deebaf9ef4 Mon Sep 17 00:00:00 2001 From: janetat Date: Mon, 22 Jun 2020 11:34:59 +0800 Subject: [PATCH 07/17] =?UTF-8?q?[chapter=5F3]=E9=87=8D=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_3/{example_data_1.py => chapter_3.py} | 0 ...example_data_2_compare_difference.py => compare_difference.py} | 0 .../{example_data_2_generate.py => generate_example_data_2.py} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename chapter_3/{example_data_1.py => chapter_3.py} (100%) rename chapter_3/{example_data_2_compare_difference.py => compare_difference.py} (100%) rename chapter_3/{example_data_2_generate.py => generate_example_data_2.py} (100%) diff --git a/chapter_3/example_data_1.py b/chapter_3/chapter_3.py similarity index 100% rename from chapter_3/example_data_1.py rename to chapter_3/chapter_3.py diff --git a/chapter_3/example_data_2_compare_difference.py b/chapter_3/compare_difference.py similarity index 100% rename from chapter_3/example_data_2_compare_difference.py rename to chapter_3/compare_difference.py diff --git a/chapter_3/example_data_2_generate.py b/chapter_3/generate_example_data_2.py similarity index 100% rename from chapter_3/example_data_2_generate.py rename to chapter_3/generate_example_data_2.py From a1ce4abf2139c68266f5a17b36105913ca850e3f Mon Sep 17 00:00:00 2001 From: janetat Date: Mon, 22 Jun 2020 13:34:43 +0800 Subject: [PATCH 08/17] =?UTF-8?q?[chapter=5F4]=E4=BF=AE=E5=A4=8D=E5=A6=82?= =?UTF-8?q?=E6=9E=9Cmongodb=E6=B2=A1=E6=9C=89=E6=95=B0=E6=8D=AE=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=92=E5=85=A5=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BC=9A=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_4/answer/DataBaseManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter_4/answer/DataBaseManager.py b/chapter_4/answer/DataBaseManager.py index 3d42135..634f313 100755 --- a/chapter_4/answer/DataBaseManager.py +++ b/chapter_4/answer/DataBaseManager.py @@ -29,7 +29,7 @@ def _query_last_id(self): :return: 最新ID """ last_info = self.handler.find({}, {'_id': 0, 'id': 1}).sort('id', -1).limit(1) - return last_info[0]['id'] if last_info else 0 + return last_info[0]['id'] if last_info.count() else 0 def add_info(self, para_dict): """ From 6308d1c141207939d764e71a27d141533805f40b Mon Sep 17 00:00:00 2001 From: janetat Date: Sun, 28 Jun 2020 00:22:56 +0800 Subject: [PATCH 09/17] =?UTF-8?q?[chapter=5F7]=E5=88=A0=E9=99=A4import=5Fe?= =?UTF-8?q?xample=5Fdata=5F1.py=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter_7/import_example_data_1.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter_7/import_example_data_1.py b/chapter_7/import_example_data_1.py index 0821076..8314193 100644 --- a/chapter_7/import_example_data_1.py +++ b/chapter_7/import_example_data_1.py @@ -8,5 +8,5 @@ reader = csv.DictReader(f) rows = [x for x in reader] -handler = handler = pymongo.MongoClient().chapter_7.example_data_1 -handler.insert_many(rows) \ No newline at end of file +handler = pymongo.MongoClient().chapter_7.example_data_1 +handler.insert_many(rows) From 5a968bfa8d6e0eb0f8ef3015b274aa8cc35e0c57 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Mar 2021 00:35:44 +0000 Subject: [PATCH 10/17] Bump jinja2 from 2.10.3 to 2.11.3 in /chapter_4 Bumps [jinja2](https://github.com/pallets/jinja) from 2.10.3 to 2.11.3. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/2.10.3...2.11.3) Signed-off-by: dependabot[bot] --- chapter_4/Pipfile.lock | 46 ++++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/chapter_4/Pipfile.lock b/chapter_4/Pipfile.lock index 177ef1c..62ba6cd 100644 --- a/chapter_4/Pipfile.lock +++ b/chapter_4/Pipfile.lock @@ -16,10 +16,10 @@ "default": { "click": { "hashes": [ - "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13", - "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" + "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", + "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" ], - "version": "==7.0" + "version": "==7.1.2" }, "flask": { "hashes": [ @@ -38,10 +38,11 @@ }, "jinja2": { "hashes": [ - "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", - "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" + "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419", + "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6" ], - "version": "==2.10.3" + "index": "pypi", + "version": "==2.11.3" }, "markupsafe": { "hashes": [ @@ -49,30 +50,54 @@ "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f", + "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39", "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014", + "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f", "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85", + "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1", "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850", + "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0", "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb", "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1", + "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2", "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7", "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8", "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193", "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b", "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", - "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5", + "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c", + "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be", + "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621" ], "version": "==1.1.1" }, @@ -113,11 +138,10 @@ }, "werkzeug": { "hashes": [ - "sha256:97660b282aa7e29f94f3fe378e5c7162d7ab9d601a8dbb1cbb2ffc8f0e54607d", - "sha256:cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3" + "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", + "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], - "index": "pypi", - "version": "==0.15.3" + "version": "==1.0.1" } }, "develop": {} From b9108d84a1006f00d3c04a77a20d06c4e2e3840b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Mar 2021 00:36:16 +0000 Subject: [PATCH 11/17] Bump jinja2 from 2.10.3 to 2.11.3 in /chapter_10/QASystem Bumps [jinja2](https://github.com/pallets/jinja) from 2.10.3 to 2.11.3. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/2.10.3...2.11.3) Signed-off-by: dependabot[bot] --- chapter_10/QASystem/Pipfile.lock | 46 ++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/chapter_10/QASystem/Pipfile.lock b/chapter_10/QASystem/Pipfile.lock index 96b70ab..7e9bab6 100644 --- a/chapter_10/QASystem/Pipfile.lock +++ b/chapter_10/QASystem/Pipfile.lock @@ -16,10 +16,10 @@ "default": { "click": { "hashes": [ - "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13", - "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" + "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", + "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" ], - "version": "==7.0" + "version": "==7.1.2" }, "flask": { "hashes": [ @@ -38,10 +38,11 @@ }, "jinja2": { "hashes": [ - "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", - "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" + "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419", + "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6" ], - "version": "==2.10.3" + "index": "pypi", + "version": "==2.11.3" }, "markupsafe": { "hashes": [ @@ -49,30 +50,54 @@ "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f", + "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39", "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014", + "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f", "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85", + "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1", "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850", + "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0", "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb", "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1", + "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2", "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7", "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8", "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193", "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b", "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", - "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5", + "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c", + "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be", + "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621" ], "version": "==1.1.1" }, @@ -122,11 +147,10 @@ }, "werkzeug": { "hashes": [ - "sha256:97660b282aa7e29f94f3fe378e5c7162d7ab9d601a8dbb1cbb2ffc8f0e54607d", - "sha256:cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3" + "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", + "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], - "index": "pypi", - "version": "==0.15.3" + "version": "==1.0.1" } }, "develop": {} From 7c5958859d12070c83026357bd9890c8050846a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Mar 2021 00:37:21 +0000 Subject: [PATCH 12/17] Bump jinja2 from 2.10.3 to 2.11.3 in /chapter_6 Bumps [jinja2](https://github.com/pallets/jinja) from 2.10.3 to 2.11.3. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/2.10.3...2.11.3) Signed-off-by: dependabot[bot] --- chapter_6/Pipfile.lock | 46 ++++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/chapter_6/Pipfile.lock b/chapter_6/Pipfile.lock index db72270..986497c 100644 --- a/chapter_6/Pipfile.lock +++ b/chapter_6/Pipfile.lock @@ -16,10 +16,10 @@ "default": { "click": { "hashes": [ - "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13", - "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" + "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", + "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" ], - "version": "==7.0" + "version": "==7.1.2" }, "flask": { "hashes": [ @@ -38,10 +38,11 @@ }, "jinja2": { "hashes": [ - "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", - "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" + "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419", + "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6" ], - "version": "==2.10.3" + "index": "pypi", + "version": "==2.11.3" }, "markupsafe": { "hashes": [ @@ -49,30 +50,54 @@ "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f", + "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39", "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014", + "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f", "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85", + "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1", "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850", + "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0", "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb", "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1", + "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2", "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7", "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8", "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193", "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b", "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", - "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5", + "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c", + "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be", + "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621" ], "version": "==1.1.1" }, @@ -86,11 +111,10 @@ }, "werkzeug": { "hashes": [ - "sha256:97660b282aa7e29f94f3fe378e5c7162d7ab9d601a8dbb1cbb2ffc8f0e54607d", - "sha256:cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3" + "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", + "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], - "index": "pypi", - "version": "==0.15.3" + "version": "==1.0.1" } }, "develop": {} From 9323ecd6d4618bce73ebc90e1a1700c015b33dc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Mar 2021 03:40:32 +0000 Subject: [PATCH 13/17] Bump jinja2 from 2.11.2 to 2.11.3 in /chapter_11/QASystem Bumps [jinja2](https://github.com/pallets/jinja) from 2.11.2 to 2.11.3. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/2.11.2...2.11.3) Signed-off-by: dependabot[bot] --- chapter_11/QASystem/Pipfile.lock | 35 ++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/chapter_11/QASystem/Pipfile.lock b/chapter_11/QASystem/Pipfile.lock index a0532c9..7e9bab6 100644 --- a/chapter_11/QASystem/Pipfile.lock +++ b/chapter_11/QASystem/Pipfile.lock @@ -38,10 +38,11 @@ }, "jinja2": { "hashes": [ - "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", - "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" + "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419", + "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6" ], - "version": "==2.11.2" + "index": "pypi", + "version": "==2.11.3" }, "markupsafe": { "hashes": [ @@ -50,8 +51,12 @@ "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f", + "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39", "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014", + "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f", "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", @@ -60,24 +65,39 @@ "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85", + "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1", "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850", + "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0", "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb", "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1", + "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2", "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7", "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8", "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193", "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b", "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5", + "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c", + "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032", "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", - "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be", + "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621" ], "version": "==1.1.1" }, @@ -127,11 +147,10 @@ }, "werkzeug": { "hashes": [ - "sha256:97660b282aa7e29f94f3fe378e5c7162d7ab9d601a8dbb1cbb2ffc8f0e54607d", - "sha256:cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3" + "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", + "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], - "index": "pypi", - "version": "==0.15.3" + "version": "==1.0.1" } }, "develop": {} From 93320a33e85dd76c987789104b5d2c5dcc0963fd Mon Sep 17 00:00:00 2001 From: kingname Date: Thu, 19 Aug 2021 14:17:08 +0800 Subject: [PATCH 14/17] change int field type --- chapter_7/import_example_data_1.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/chapter_7/import_example_data_1.py b/chapter_7/import_example_data_1.py index 8314193..5205711 100644 --- a/chapter_7/import_example_data_1.py +++ b/chapter_7/import_example_data_1.py @@ -6,7 +6,12 @@ with open('example_data_1.csv', encoding='utf-8') as f: reader = csv.DictReader(f) - rows = [x for x in reader] + rows = [] + for row in reader: + row['age'] = int(row['age']) + row['salary'] = int(row['salary']) + row['id'] = int(row['id']) + rows.append(rows) handler = pymongo.MongoClient().chapter_7.example_data_1 handler.insert_many(rows) From 05e06241c16e929b173cf67f52692cc9a53d740c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Aug 2021 06:19:03 +0000 Subject: [PATCH 15/17] Bump jinja2 from 2.11.2 to 2.11.3 in /chapter_12/QASystem Bumps [jinja2](https://github.com/pallets/jinja) from 2.11.2 to 2.11.3. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/2.11.2...2.11.3) --- updated-dependencies: - dependency-name: jinja2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- chapter_12/QASystem/Pipfile.lock | 94 ++++++++++++++++---------------- 1 file changed, 48 insertions(+), 46 deletions(-) diff --git a/chapter_12/QASystem/Pipfile.lock b/chapter_12/QASystem/Pipfile.lock index e2c203a..3211b4b 100644 --- a/chapter_12/QASystem/Pipfile.lock +++ b/chapter_12/QASystem/Pipfile.lock @@ -16,10 +16,10 @@ "default": { "click": { "hashes": [ - "sha256:8a18b4ea89d8820c5d0c7da8a64b2c324b4dabb695804dbfea19b9be9d88c0cc", - "sha256:e345d143d80bf5ee7534056164e5e112ea5e22716bbb1ce727941f4c8b471b9a" + "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a", + "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6" ], - "version": "==7.1.1" + "version": "==8.0.1" }, "cython": { "hashes": [ @@ -69,55 +69,57 @@ }, "itsdangerous": { "hashes": [ - "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", - "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749" + "sha256:5174094b9637652bdb841a3029700391451bd092ba3db90600dea710ba28e97c", + "sha256:9e724d68fc22902a1435351f84c3fb8623f303fffcc566a4cb952df8c572cff0" ], - "version": "==1.1.0" + "version": "==2.0.1" }, "jinja2": { "hashes": [ - "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", - "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" + "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419", + "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6" ], - "version": "==2.11.2" + "index": "pypi", + "version": "==2.11.3" }, "markupsafe": { "hashes": [ - "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", - "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", - "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", - "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", - "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", - "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", - "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", - "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", - "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", - "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", - "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", - "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", - "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", - "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", - "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", - "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", - "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", - "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", - "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", - "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", - "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", - "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", - "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", - "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", - "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", - "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", - "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", - "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", - "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", - "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", - "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", - "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", - "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" + "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298", + "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64", + "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b", + "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567", + "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff", + "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74", + "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35", + "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26", + "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7", + "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75", + "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f", + "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135", + "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8", + "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a", + "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914", + "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18", + "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8", + "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2", + "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d", + "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b", + "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f", + "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb", + "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833", + "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415", + "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902", + "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9", + "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d", + "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066", + "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f", + "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5", + "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94", + "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509", + "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51", + "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872" ], - "version": "==1.1.1" + "version": "==2.0.1" }, "pymongo": { "hashes": [ @@ -188,10 +190,10 @@ }, "werkzeug": { "hashes": [ - "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", - "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" + "sha256:1de1db30d010ff1af14a009224ec49ab2329ad2cde454c8a708130642d579c42", + "sha256:6c1ec500dcdba0baa27600f6a22f6333d8b662d22027ff9f6202e3367413caa8" ], - "version": "==1.0.1" + "version": "==2.0.1" } }, "develop": {} From 3b30b6152c8d039c77323f5d588909e0bb343f9e Mon Sep 17 00:00:00 2001 From: 5t4r1i9ht Date: Fri, 16 Feb 2024 12:32:34 +0800 Subject: [PATCH 16/17] fix import_example_data_1.py --- chapter_7/import_example_data_1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter_7/import_example_data_1.py b/chapter_7/import_example_data_1.py index 5205711..fdf5067 100644 --- a/chapter_7/import_example_data_1.py +++ b/chapter_7/import_example_data_1.py @@ -11,7 +11,7 @@ row['age'] = int(row['age']) row['salary'] = int(row['salary']) row['id'] = int(row['id']) - rows.append(rows) + rows.append(row) handler = pymongo.MongoClient().chapter_7.example_data_1 handler.insert_many(rows) From 5d9d42c0cd45c027230af7557dfbb91247a070fc Mon Sep 17 00:00:00 2001 From: kingname Date: Sat, 17 Feb 2024 21:31:26 +0800 Subject: [PATCH 17/17] Update DataBaseManager.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复_query_last_id报错的问题 --- chapter_4/answer/DataBaseManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter_4/answer/DataBaseManager.py b/chapter_4/answer/DataBaseManager.py index 634f313..9d5a97e 100755 --- a/chapter_4/answer/DataBaseManager.py +++ b/chapter_4/answer/DataBaseManager.py @@ -28,8 +28,8 @@ def _query_last_id(self): :return: 最新ID """ - last_info = self.handler.find({}, {'_id': 0, 'id': 1}).sort('id', -1).limit(1) - return last_info[0]['id'] if last_info.count() else 0 + last_info = self.handler.find_one({}, {'_id': 0, 'id': 1}, sort=[('_id', -1)]) + return last_info['id'] if last_info else 0 def add_info(self, para_dict): """