小编Dje*_*ent的帖子

发送POST请求时,Django返回403错误

当我使用以下Python代码向我的Django网站发送POST请求时,我得到403:Forbidden错误.

url = 'http://www.sub.domain.com/'
values = { 'var': 'test' }

try:
    data = urllib.urlencode(values, doseq=True)
    req = urllib2.Request(url, data)
    response = urllib2.urlopen(req)
    the_page = response.read()
except:
    the_page = sys.exc_info()
    raise
Run Code Online (Sandbox Code Playgroud)

当我打开任何其他网站时,它正常工作.domain.com也是Django网站,也可以正常使用.我认为,这是Django配置问题,任何人都可以告诉我应该怎么做才能提供对我脚本的访问权限?

python django http-post http-status-code-403

37
推荐指数
2
解决办法
5万
查看次数

使用类型注释记录类属性

我想从docstrings自动生成文档到我的代码.我有一些基本类用于存储一些数据:

class DataHolder:
    """
    Class to hold some data

    Attributes:
        batch: Run without GUI
        debug (bool): Show debug messages
    """
    batch: bool = False
    debug: bool = False
    name: str = 'default'
    """Object name"""
    version: int = 0
    """int: Object version"""
Run Code Online (Sandbox Code Playgroud)

我的rst档案:

DataHolder
==========

.. autoclass:: data_holder.DataHolder
   :members:
Run Code Online (Sandbox Code Playgroud)

我以不同的方式记录了每个属性以显示差异,这里是输出:
在此输入图像描述

看起来Sphinx无法将该Attributes部分与真实属性连接起来,这就是为什么它无法显示其默认值.

我想要实现的最终输出是对于version定义了docstring 的字段的结果batch.我想显示具有默认值和类型的属性名称,但是从类型注释中获取.看起来Sphinx在这种情况下忽略了类型注释.

我的狮身人面像扩展:

extensions = [
    'sphinx.ext.viewcode',
    'sphinx.ext.autodoc',
    'sphinxcontrib.napoleon',
]
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能实现这种行为?我找不到这种用例的好例子.

python python-sphinx autodoc python-3.6 sphinx-napoleon

22
推荐指数
1
解决办法
820
查看次数

Django 模型的类型注释

我正在做一个 Django 项目。由于这是一个新项目,我希望使用 python 3.6+ 类型注释对其进行完整注释。我正在尝试注释模型,但我很难找到一种好的方法。

让我们IntegerField以 为例。我看到两个注释它的选择:

# number 1
int_field: int = models.IntegerField()

# number 2
int_field: models.IntegerField = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

1 在 mypy 中失败:

Incompatible types in assignment (expression has type "IntegerField[<nothing>, <nothing>]", variable has type "int")
Run Code Online (Sandbox Code Playgroud)

编号 2 对 mypy 来说是可以的,但是 IDE 作为 PyCharm 无法解决它,并且经常抱怨使用了错误的类型。

是否有正确注释模型的最佳实践,这将满足 mypy 和 IDE 的要求?

python django type-annotation

22
推荐指数
1
解决办法
6773
查看次数

将 svelte 应用程序构建为一组静态文件

我想在我的下一个项目中使用 Svelte,因为它的语法简洁并且使用起来非常愉快。不幸的是,要在我的公司部署该应用程序,我无法node在服务器上使用或类似的东西。我只能nginx以静态文件的形式提供应用程序。

苗条有可能吗?我找不到任何可以让我这样做的东西,我尝试过的所有解决方案似乎都@sveltejs/adapter-static没有正确生成以这种方式使用它。我在网上找不到任何有关如何执行此操作的指南。

javascript svelte sveltekit

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

Kubernetes和Nginx入口控制器出现413错误

我正在尝试更改该client_max_body_size值,因此我的nginx入口不会返回413错误.

我测试了一些解决方案.
这是我的测试配置图:

kind: ConfigMap
apiVersion: v1
data:
  proxy-connect-timeout: "15"
  proxy-read-timeout: "600"
  proxy-send-timeout: "600"
  proxy-body-size: "8m"
  hsts-include-subdomains: "false"
  body-size: "64m"
  server-name-hash-bucket-size: "256"
  client-max-body-size: "50m"
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app: ingress-nginx
Run Code Online (Sandbox Code Playgroud)

这些更改完全没有效果,加载后,在nginx控制器日志中我可以看到有关重新加载配置图的信息,但是nginx.conf中的值是相同的:

root@nginx-ingress-controller-95db685f5-b5s6s:/# cat /etc/nginx/nginx.conf | grep client_max                                                                                                       
                        client_max_body_size                    "8m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
Run Code Online (Sandbox Code Playgroud)

我的nginx-controller配置使用这个图像:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.13.0

如何强制nginx更改值?对于我所有的进入,我需要在全局范围内进行更改.

nginx kubernetes

13
推荐指数
5
解决办法
7620
查看次数

QObject实例化中的PySide分段错误

我有一个类是我的其他非qt类的基础.该类使用Signal实例实例化QObject类.不幸的是,有时它会引发Segmentation Fault错误.这是我的代码:

class PublisherSignal(QObject):
    notify = Signal(list)


class PublisherBase:
    def __init__(self, *args, **kwargs):
        super(PublisherBase, self).__init__(*args, **kwargs)
        self._signal = PublisherSignal()
Run Code Online (Sandbox Code Playgroud)

错误处理程序显示,分类错误发生在PublisherSignal()类实例化上.并非总是如此.在大多数情况下,它工作正常.没有线程涉及.子类PublisherBase不是子类QObject.
段错误的原因是什么?

python segmentation-fault pyside python-3.x

13
推荐指数
1
解决办法
198
查看次数

使用 `overflow-wrap: break-word` 自动列宽

我有一个包含 3 列的 HTML 表 - ID、时间戳和数据。ID 和时间戳非常窄,数据可能非常大,有时它没有换行符,以避免我设置的水平滚动条overflow-wrap: break-word。为了使它工作,我需要将我table-layoutfixed.

虽然它有效,但我不喜欢所有列现在都具有相等的宽度。我可以将前两列大小设置为某个固定宽度,但我希望它们适合内容。如何强制前 2 列调整其宽度,第三列占用剩余空间?

这是我的代码示例:

<table style="width: 100%; table-layout: fixed; overflow-wrap: break-word">
  <tr>
    <th>ID</th>
    <th>Time</th>
    <th>Data</th>
  </tr>
  <tr>
    <td>0</td>
    <td>10:11</td>
    <td>some_long_value_that_may_or_may_not_contain_a_space</td>
  </tr>
  <tr>
    <td>1</td>
    <td>10:12</td>
    <td>some_long_value_that_may_or_may_not_contain_a_space</td>
  </tr>
  <tr>
    <td>2</td>
    <td>10:13</td>
    <td>some_long_value_that_may_or_may_not_contain_a_space_and_it_may_be_so_long_that_it_wont_fit_into_the_column_and_needs_to_be_wrapped</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

基本上我需要的是以某种方式强制前 2 列忽略table-layout: fixed或强制overflow-wrap: break-word没有它的工作。

html css

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

gitlab中的Pylint徽章

Gitlab具有生成有关构建状态和覆盖百分比的徽章的功能.
是否可以创建自定义徽章以显示Pylint结果?或者只是在README.md中显示此结果?
我已经为Pylint做了CI工作

pylint gitlab gitlab-ci

8
推荐指数
2
解决办法
6189
查看次数

Rust:预期类型,发现不透明类型

我想在actix中制作一个用于渲染模板的辅助函数,如下所示:

fn render_response(
    tera: web::Data<Tera>,
    template_name: &str,
    context: &Context,
) -> impl Responder {
    match tera.render(template_name, context) {
        Ok(rendered) => HttpResponse::Ok().body(rendered),
        Err(_) => HttpResponse::InternalServerError().body("Failed to resolve the template."),
    }
}
Run Code Online (Sandbox Code Playgroud)

我在如下视图中使用它:

async fn signup(tera: web::Data<Tera>) -> impl Responder {
    let mut data = Context::new();
    data.insert("title", "Sign Up");

    render_response(tera, "signup.html", &data)
}
Run Code Online (Sandbox Code Playgroud)

如果视图与上面的一样简单,则一切正常,但如果视图稍微复杂一点,我就会遇到问题:

async fn login(tera: web::Data<Tera>, id: Identity) -> impl Responder {
    let mut data = Context::new();
    data.insert("title", "Login");

    if let Some(id) = id.identity() {
        return HttpResponse::Ok().body(format!("Already logged in: {}.", …
Run Code Online (Sandbox Code Playgroud)

types rust actix-web

8
推荐指数
1
解决办法
6892
查看次数

Django 中`annotate` + `values` + `union` 结果不正确

跳转到编辑查看更多真实代码示例,更改查询顺序后不起作用

这是我的模型:

class ModelA(models.Model):
    field_1a = models.CharField(max_length=32)
    field_2a = models.CharField(max_length=32)


class ModelB(models.Model):
    field_1b = models.CharField(max_length=32)
    field_2b = models.CharField(max_length=32)
Run Code Online (Sandbox Code Playgroud)

现在,每个创建 2 个实例:

ModelA.objects.create(field_1a="1a1", field_2a="1a2")
ModelA.objects.create(field_1a="2a1", field_2a="2a2")
ModelB.objects.create(field_1b="1b1", field_2b="1b2")
ModelB.objects.create(field_1b="2b1", field_2b="2b2")
Run Code Online (Sandbox Code Playgroud)

如果我只查询一个带注释的模型,我会得到类似的信息:

>>> ModelA.objects.all().annotate(field1=F("field_1a"), field2=F("field_2a")).values("field1", "field2")
[{"field1": "1a1", "field2": "1a2"}, {"field1": "2a1", "field2": "2a2"}]
Run Code Online (Sandbox Code Playgroud)

这是正确的行为。问题开始了,当我想合并这两个模型时:

# model A first, with annotate
query = ModelA.objects.all().annotate(field1=F("field_1a"), field2=F("field_2a"))
# now union with model B, also annotated
query = query.union(ModelB.objects.all().annotate(field1=F("field_1b"), field2=F("field_2b")))
# get only field1 and field2
query = query.values("field1", "field2")

# the results are skewed: …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-orm

7
推荐指数
1
解决办法
483
查看次数