小编Jaf*_*ker的帖子

为什么react-router正确处理正则表达式“path”,但同时抛出错误?

我有一个组件想要显示在除根路径之外的所有路径上。因此,我没有提供组件的所有路径Route,而是编写了以下内容:

<Route exact path={/^\/.+$/} component={() =>
  <div><img src="../../../assets/AndreyBogdanov2.jpg" className="me" /></div>
} />
Run Code Online (Sandbox Code Playgroud)

该正则表达式匹配开头斜杠后包含任何字符的所有字符串。它按预期工作,但是在控制台中我看到一个错误:

Warning: Failed prop type: Invalid prop `path` of type `regexp` supplied to `Route`, expected `string`.
    in Route (created by App)
    in App
    in Router (created by BrowserRouter)
    in BrowserRouter
Run Code Online (Sandbox Code Playgroud)

我并不是在抱怨,而是想知道,它是如何运作的?

在 prop 的文档中,path它说它需要是任何可以path-to-regexp理解的 URL,而在 的path-to-regexp文档中,它说 regex 是一个有效的参数。PropTypes所以基本上,当遇到字符串以外的内容时,组件会抛出错误。

regex reactjs react-router

5
推荐指数
1
解决办法
1902
查看次数

如何在Python中生成DOCX并将其保存在内存中?

我的任务是从模板生成DOCX文件,然后通过Flask提供该文件。我使用python-docx-templates,它只是python-docx的包装,允许使用jinja模板。

最后,他们建议使用StringIO仅将文件保存在内存中,因此我的代码如下所示:

def report_doc(user_id):
    # Prepare the data...

    from docxtpl import DocxTemplate

    doc = DocxTemplate(app.root_path+'/templates/report.docx')
    doc.render({
        # Pass parameters
    })
    from io import StringIO
    file_stream = StringIO()
    doc.save(file_stream)

    return send_file(file_stream, as_attachment=True, attachment_filename='report_'+user_id+'.docx')
Run Code Online (Sandbox Code Playgroud)

保存时会引发错误TypeError: string argument expected, got 'bytes'。谷歌搜索后,我找到了这个答案,说ZipFile期待BytesIO。但是,当我用BytesIO代替StringIO时,它仅返回一个空文件,因此它不会引发任何错误,但绝对不会保存该文件。

在这种情况下究竟能做什么?如果这里有什么完全不对的地方,那么总体上该如何做?

谢谢!

UPD:这是对save函数调用的完整跟踪的异常:

File "/ms/controllers.py", line 1306, in report_doc
    doc.save(file_stream)
  File "/.env/lib/python3.5/site-packages/docx/document.py", line 142, in save
    self._part.save(path_or_stream)
  File "/.env/lib/python3.5/site-packages/docx/parts/document.py", line 129, in save
    self.package.save(path_or_stream)
  File "/.env/lib/python3.5/site-packages/docx/opc/package.py", line 160, in save
    PackageWriter.write(pkg_file, self.rels, …
Run Code Online (Sandbox Code Playgroud)

python python-docx

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

标签 统计

python ×1

python-docx ×1

react-router ×1

reactjs ×1

regex ×1