小编tec*_*tor的帖子

RuntimeError:无法访问请求外的配置

我收到以下错误:

RuntimeError: cannot access configuration outside request
Run Code Online (Sandbox Code Playgroud)

从执行以下代码:

# -*- coding: utf-8 -*-

from flask import Flask, request, render_template, redirect, url_for
from flaskext.uploads import UploadSet, configure_uploads, patch_request_class

app = Flask(__name__)
csvfiles = UploadSet('csvfiles', 'csv', "/var/uploads")

@app.route("/")
def index():
    return "Hello World!"

@app.route('/upload', methods=['GET', 'POST'])
def upload():
    if request.method == 'POST' and 'csvfile' in request.files:
        filename = csvfiles.save(request.files['csvfile']) # the error occurs here!
        return redirect(url_for('index'))
    return render_template('upload.html')

if __name__ == "__main__":
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

我不明白错误信息本身,我不知道如何解决问题.我阅读官方文档,似乎我必须做一些配置(在哪里存储上传),但我不知道如何以正确的方式做到这一点.

我正在使用Flask-Uploads扩展程序.

这是在python 2.7虚拟环境中运行的,其中包含以下已安装的软件包:

Flask==0.10.1
Flask-Uploads==0.1.3
Jinja2==2.7.2 …
Run Code Online (Sandbox Code Playgroud)

python flask

15
推荐指数
1
解决办法
3587
查看次数

类似的许可证,如'Creative Commons BY-NC-SA',但适用于Github上的软件

我正在GitHub上搜索我的软件项目的正确许可证.我只使用免费的GitHub-Repository,所以它必须是一个OpenSource-License(这对我来说没问题).我非常喜欢Creative Commons许可证,因为它们很容易理解 - 但它们不适用于软件......

因此,在创意公共条款中,我搜索许可证:

归因 - 您必须以作者或许可人指定的方式对作品进行归因(但不得以任何方式表明他们认可您或您对作品的使用).

非商业性 - 您不得将此作品用于商业用途.

共享 - 如果您更改,转换或以此作品为基础,您可以仅在与此作品相同或类似的许可下分发作品.

资料来源:http://creativecommons.org/licenses/by-nc-sa/3.0/

对于我自己,我希望保留商业使用我的软件的权利(即使我目前不打算这样做).

另外我想给我的软件项目中的图形一个自己的许可证 - 在这里我可以使用CC BY-NC-SA,对吧?如何在GitHub中正确管理?我可以上传(免费)github存储库中的图像,在该特殊文件夹中使用该许可证,还是我必须为其获取外部源?(因为它与GitHubs对免费存储库的要求不匹配)

我的问题的简短摘要:

  • 哪个是'CC BY-NC-SA',就像我可以在我的免费GitHub存储库中使用的开源许可证一样?
  • 我可以在我的存储库中使用"CC BY-NC-SA"许可证来获取我的图形/图像吗?
  • 哪个是在免费的GitHub存储库中组合这两个东西的最佳方法?

licensing github

12
推荐指数
1
解决办法
2707
查看次数

如何使用亚马逊产品 API 5 获取产品描述?

我使用亚马逊产品 API 5 并希望检索带有描述的产品。在旧版本中,这可以通过 itemlookup 实现。在新版本中只有getitem。但这并没有在 Json 中提供产品说明。有没有人知道如何通过 API 获取产品描述?

amazon-product-api

7
推荐指数
0
解决办法
138
查看次数

亚马逊广告 API:ASIN 报告请求返回“缺少活动类型”

对 API 端点的请求:
POST https://advertising-api-eu.amazon.com/v2/asins/report

官方文档:https :
//advertising.amazon.com/API/docs/en-us/reference/sponsed-products/2/reports

标题:

Authorization: Bearer Atza|xxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
Amazon-Advertising-API-ClientId: xxxxxxxxxxxxxxxxxxxxxxxxxx
Amazon-Advertising-API-SCOPE: xxxxxxxxxxxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

要求:

 {
    "segment": "query",
    "reportDate":"20200201",
    "metrics": "campaignName,campaignId,adGroupName,adGroupId,keywordId,keywordText,asin,otherAsin,currency,matchType,attributedUnitsOrdered30d,attributedUnitsOrdered30dOtherSKU,attributedSales30dOtherSKU"
 }  
Run Code Online (Sandbox Code Playgroud)

回复:

{
    "code": "400",
    "details": "Missing campaign type",
    "requestId": "7Q8PMWM2618KAS0VEG87"
}
Run Code Online (Sandbox Code Playgroud)

题:

我认为错误消息具有误导性(因为我检查了两次文档并且因为我以前使用 API 的经验)。但真正的错误是什么?我如何获得 ASIN 报告?

amazon-advertising-api

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

在 WSL2 (Ubuntu 20.04) 中运行的 Nginx 不会在端口 80 以外的另一个端口上向 Windows 10 主机提供 HTML 页面

我是 WSL2 的新手,但到目前为止它真的很好用。我有一个简单的 HTML 页面,我想用 Nginx 提供服务,但我希望它可以通过主机上的 Web 浏览器访问。默认的 nginx 网页有效(!),所以我开始模仿默认的 nginx html 页面(/var/www/html/index.html)。

我创建了:
/var/www/test.dev/index.html
/etc/nginx/sites-available/test.dev(sites-enabled/中的+符号链接)

Nginx 配置:

server {
    listen 9000;
    listen [::]:9000;

    server_name test.dev;

    root /var/www/test.dev;
    index index.html;

    location / {
            try_files $uri $uri/ =404;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以与默认配置的唯一大不同是端口 9000。

我重新加载/重新启动 nginx 并尝试卷曲我的配置:

$ curl https://localhost

$ curl https://localhost:9000
Run Code Online (Sandbox Code Playgroud)

两个请求都成功了

但现在我想使用网络浏览器访问我的 Windows 主机上的页面。第一个(默认)有效,我可以看到默认的 Nginx HTML 页面。第二个不起作用:网站无法访问

所以我的问题:
1. 为什么会这样?我是否必须对 Windows 防火墙设置进行一些更改?
2. 我喜欢有一个像 example.com 这样的虚拟主机名而不是 localhost:9000
我已经编辑了 /etc/hosts ... 它可以与 curl 一起使用,但又不在主机浏览器中

ubuntu nginx wsl-2

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