小编use*_*300的帖子

在Python3 CGI脚本中,如何在POST中读取原始表单数据?

是的,我知道cgi.FieldStorage,但是,作为某种形式的无序字典,它不保留原始数据的顺序(见下面的证明).由于我希望将此数据与PayPal IPN一起使用,因此订单是重要的PayPal文档,其中说"......您必须按照收到的确切顺序发回内容......"

或者,os.environ.get('QUERY_STRING')看起来很完美,但它似乎只适用于GET.示例代码:(myscript.py)

#!/usr/bin/python3

import cgi, os

query = os.environ.get('QUERY_STRING') or 'no query'
print ("Content-type: text/plain\n\n")
print("query=" + query)
form = cgi.FieldStorage()
for key in form.keys():
   print("\n" + key + '=' + form.getvalue(key))
Run Code Online (Sandbox Code Playgroud)

使用浏览器的GET,例如(注意foo ggg 之前)

http://example.com/myscript.py/foo=bar&ggg=3&aaa=bbb&zzz=qqq
Run Code Online (Sandbox Code Playgroud)

回报

query=foo=bar&ggg=3&aaa=bbb&zzz=qqq
ggg=3
foo=bar   << note that foo now comes after ggg
aaa=bbb
zzz=qqq
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用Postman进行POST

POST /myscript.py HTTP/1.1
Host: example.com
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded

foo=bar&ggg=3&aaa=bbb&zzz=qqq
Run Code Online (Sandbox Code Playgroud)

它不返回任何查询字符串,并且正如预期的那样,FormData没有保留顺序.

query=no query
ggg=3 …
Run Code Online (Sandbox Code Playgroud)

python post cgi paypal python-3.x

4
推荐指数
1
解决办法
2101
查看次数

如何在Node.js请求中POST多个值相同的名称

我需要使用node.js和Request以编程方式向POST提交多个值(在本例中为美国各州).

例如,HTML表单可能是

<select name="stateprov[]" id="stateprov" multiple="multiple" >
Run Code Online (Sandbox Code Playgroud)

其次是50个选项......,每个州一个

提交的表单数据看起来像

stateprov%5B%5D=CA&stateprov%5B%5D=WI
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用Request?鉴于我有一系列状态,['CA','WI'},我试过了

form['stateprov[]'] = states  
   fails 
it generates stateprov%5B%5D[0]=WI&stateprov%5B%5D[1]=CA as the output
Run Code Online (Sandbox Code Playgroud)

form ['stateprov []'] = states.join(',')也不起作用

BTW,Node人,我真的很喜欢这个项目,有很多很酷的东西,但是你的文档并不是很好.

后续:我认为问题可能是Request(https://npmjs.org/package/request)使用qs(https://npmjs.org/package/qs)对表单数据进行编码,并添加了无关的[ 0]和[1].节点的内置的queryString(http://nodejs.org/api/querystring.html#querystring_querystring_stringify_obj_sep_eq)做我想要的编码.

后续#2:与Mikeal Rogers聊天,他在支持请求方面表现出色,他基本上说我不能在请求中这样做.由于我没有利用Request的许多很酷的功能,我会看一下更基本的http.

javascript forms post request node.js

3
推荐指数
1
解决办法
5153
查看次数

JavaScript“对象”具有哈希表的效率如何?

我正在缓存可能有 1000 多个位置的经度和纬度(以及更多信息),目前使用的是 JavaScript 哈希值 {}。例如

var cache = {};
cache['Boston, MA'] = { id: someid, latlon: [lat, long] };
cache['Someotherplace, TX'] = { id: someotherid, latlon: [itslat, itslong]};
Run Code Online (Sandbox Code Playgroud)

每次出现新位置时,我都会进行地理编码并将结果添加到缓存中。我认为波士顿的纬度不会很快改变......

查找会相当快吗?我不需要快速,我没有运行亚马逊,但是随着这些数据增长到 2000 个位置,它会陷入困境吗?如果是这样,什么可能是一个不错的选择?

javascript hashmap

3
推荐指数
1
解决办法
2892
查看次数

Svelte bundle.js 很大,充满@license 注释,即使在生产模式下

>npm run build在一个中等规模的 Svelte 项目上生成一个大的 public/build/bundle.js 文件。Javascript 代码被最小化为一系列单行代码

function(t){return new qr((function(e){...

但在中间(或有时在中间)每一行都是许可证的大注释块

 * @license
 * Copyright 2018 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 ... 9 more lines
 * limitations under the License.
Run Code Online (Sandbox Code Playgroud)

日期不同,2017-2019。还有一些 Microsoft 许可证。代码中散布着大约 70 个这样的许可证,使其膨胀到 800kb。

我没有搞乱汇总配置或任何东西。这是 package.json 相关部分:

"scripts": {
    "build": "rollup -c",
    "dev": "rollup -c -w",
    "start": "sirv public"
  },
  "devDependencies": {
    "@rollup/plugin-commonjs": "^11.0.0",
    "@rollup/plugin-node-resolve": "^7.0.0",
    "rollup": "^1.20.0",
    "rollup-plugin-livereload": "^1.0.0",
    "rollup-plugin-svelte": "^5.0.3",
    "rollup-plugin-terser": "^5.1.2",
    "svelte": "^3.0.0",
    "svelte-mui": "^0.3.3" …
Run Code Online (Sandbox Code Playgroud)

rollupjs svelte

2
推荐指数
1
解决办法
969
查看次数

标签 统计

javascript ×2

post ×2

cgi ×1

forms ×1

hashmap ×1

node.js ×1

paypal ×1

python ×1

python-3.x ×1

request ×1

rollupjs ×1

svelte ×1