小编gdl*_*lmx的帖子

定义用于复杂View Generator函数的API(具有许多可配置项)

我正在为我的Django项目编写一个视图生成器。我有大量来自旧版应用程序的模型(约150个模型),所有模型都需要相同的基本CRUD操作(显然,仅提供Admin访问权限还不够)。

因此,我正在编写一个生成器,该生成器将为每个模型返回5个视图,当然每个视图都可能具有大量选项,并且我正在尝试为生成器定义合理的API /默认参数格式。

我目前的发电机:

def generate_views(model_class, **kwargs):
    """
    For a given model, returns a dict of generic class-based views
    """
    ###
    # Forms
    #   Optionally generate form classes if not already provided
    ###

    # Append these fields with either "create_" or "update_" to have them only
    # apply to that specific type of form
    form_override_args = ['fields', 'exclude', 'form_method', 'form_class',
                          'form_layout', 'widgets', 'media_css', 'media_js']

    if 'form_class' not in kwargs and 'create_form_class' not in kwargs:
        create_form_kwargs = kwargs.copy()
        for arg in …
Run Code Online (Sandbox Code Playgroud)

python django

9
推荐指数
1
解决办法
209
查看次数

Django将Haystack荧光笔结果传递给视图

我正在使用django-haystack,并且尝试实现一种将页码附加到pdf链接的方法,以便在特定页面中打开它。我的目标是在找到第一个匹配项的页面中打开pdf。我知道命中在文档中的位置以及页面更改的位置。例如,我知道第一个命中从字符2067开始,第二页在字符3000处更改,因此我必须在第二页打开pdf。

我的问题是:我怎样才能得到该函数的结果,该函数可以找到应打开pdf并呈现它的页面的编号?

我认为结果应该是这样,<a href="{% static 'img/sample.pdf#page={{ pageNumber }}' %}">但我愿意接受任何其他建议。

附言:我不是要您解决我的问题。我想提出建议或进行有建设性的讨论,因为我是django的新手。

先感谢您

编辑

因此,经过研究,我做了以下工作。我发现荧光笔类具有查找匹配位置的功能。我在该类中添加了一个吸气剂以获得位置(我将在以后进行更改。现在,我想看看它是否按照我认为的方式工作)。然后在我的views.py文件中添加以下内容

from django.shortcuts import render
from haystack.utils.highlighting import Highlighter


def getPage(request):
        pos = Highlighter.getPos()
        print (pos)
        return render(request, 'search/_result_object.html', {'pos': pos})
Run Code Online (Sandbox Code Playgroud)

在我的html中我添加了这个

<ul>
    {% for element in pos %}
        <li>{{ element }}</li>
    {% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)

只是打印位置,看看一切正常。但是列表为空,这意味着我没有结果。也许有些东西没有按照我认为的方式工作。有任何想法吗?

编辑#2

我认为不可能从荧光笔获取位置,因为我没有实际的荧光笔对象来使用吸气剂获取位置。

还有其他方法可以在荧光笔和视图之间传递参数吗?我设法在我的视图中获取了查询词,但是我没有找到查询词的文本块,也没有全文来再次搜索该位置。另外,我认为当程序扩展时,这种方法会很慢。

python django django-haystack

6
推荐指数
1
解决办法
140
查看次数

如何为 setuptools 分发创建嵌套的命名空间包

我正在开发一个 python 项目,该项目将具有单独的可分发部分。

我已经能够通过制作命名空间包来实现我的部分目标。我有“sub1”和“sub2”,都在命名空间“lvl1”中。我可以使用“pip install -e”或python setup.py develop. 我可以用import lvl1.sub1和导入它们import lvl1.sub2

但是,该项目非常庞大,并且需要嵌套命名空间。我想import lvl1.lvl2.sub1import lvl1.lvl2.sub2。所以两个子包都在同一个命名空间(“lvl2”)中,它本身在一个命名空间(“lvl1”)中。

所需的概念结构:

lvl1/
    lvl2/
        sub1/
            code.py
            more_code.py
            ...
        sub2/
            code.py
            ...
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点以及如何做到这一点?

python namespaces setuptools package

6
推荐指数
1
解决办法
1157
查看次数

Jupyter Notebook无法在Windows 10中以python 3.8开头

这是使用python版本3.8启动jupyter笔记本时的详细错误

  File "c:\users\kokat\appdata\local\programs\python\python38\lib\runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\kokat\AppData\Local\Programs\Python\Python38\Scripts\jupyter-notebook.EXE\__main__.py", line 9, in <module>
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\jupyter_core\application.py", line 266, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\traitlets\config\application.py", line 657, in launch_instance
    app.initialize(argv)
  File "<c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\decorator.py:decorator-gen-7>", line 2, in initialize
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\traitlets\config\application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\notebook\notebookapp.py", line 1628, in initialize
    self.init_webapp()
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\notebook\notebookapp.py", line 1407, in init_webapp
    self.http_server.listen(port, self.ip)
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\tornado\tcpserver.py", line 144, in listen
    self.add_sockets(sockets) …
Run Code Online (Sandbox Code Playgroud)

tornado python-3.x jupyter-notebook

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

模板片段缓存有时无法在我的Django项目中加载?

所以我store_navbar有时加载有时没有加载。我正在使用Django 1.7。我使用片段缓存在中加载类别navbar

{% load cache %}
{% cache CACHE_DEFAULT_TIMEOUT store_navbar store.id %}
{% include template_root|add:"navbar/categories.html" %}
{% endcache %}
Run Code Online (Sandbox Code Playgroud)

我的缓存超时变量是:

CACHE_DEFAULT_TIMEOUT = 86400
Run Code Online (Sandbox Code Playgroud)

python django memcached caching django-templates

5
推荐指数
0
解决办法
153
查看次数

python中的行分析类实例化

我有一些我正在尝试分析的现有代码。我可以通过@profile使用kernprof添加装饰器来成功地排列配置文件类方法。

有没有一种通用的方法来分析类实例化?我有几个类具有非常复杂的继承结构。当我尝试分析它们的 init 函数时,我得到如下信息:

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
   179                                               def __init__(self, data):
   180         1    8910739.0 8910739.0    100.0          super().__init__(data)
   181         1         10.0      10.0      0.0          self.mortgage_rate = 5.2  # rate in percentage
Run Code Online (Sandbox Code Playgroud)

这有点没用,因为我不知道__init__正在调用什么实际的父函数(这个类有 2 个父级,每个父级都有一个或多个父级)。

有什么办法可以做得更好吗?例如,有没有办法自动潜入每条线,并分析它调用的线(深度有限)?

python inheritance instantiation line-profiler

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

FastAPI 与异步 Flask 的基准?

我是一名对基准测试不感兴趣的开发人员,我正在尝试决定是否应该使用 Flask 还是 FastAPI 来构建一些 Python/Vue 项目。我在网上看到有关 FastAPI 如何比 Flask 更快的内容,因为 Flask 是单线程或类似的东西,而 FastAPI 是异步的,但显然最近 Flask 添加了异步路由,所以现在我想知道 FastAPI 是否仍然是(?) 比 Flask 更快。

有人做过比较 FastAPI 和 Flask 异步路由的基准测试吗?当我搜索谷歌时我找不到任何东西。

python flask fastapi

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

尝试提交时“没有任何提交,工作目录干净”消息

我正在尝试按照教程创建博客网站 ( http://tutorials.jumpstartlab.com/projects/blogger.html ),但是在执行这些步骤时我遇到了一些错误。我创建了一个空的存储库https://github.com/khpeek/jumpstart-blogger并希望将代码从~/blogger目录推送到它。我尝试了以下命令:

kurt@kurt-ThinkPad:~/blogger$ git init
Reinitialized existing Git repository in /home/kurt/blogger/.git/
kurt@kurt-ThinkPad:~/blogger$ git add .
kurt@kurt-ThinkPad:~/blogger$ git commit -m "first blogger commit"
On branch master
nothing to commit, working directory clean
kurt@kurt-ThinkPad:~/blogger$ git remote add origin git@github.com:khpeek/jumpstart-blogger.git
fatal: remote origin already exists.
Run Code Online (Sandbox Code Playgroud)

首先让我感到困惑的是“工作目录清理”警告,因为目录中有内容:

kurt@kurt-ThinkPad:~/blogger$ ls
app  config     db       Gemfile.lock  log     Rakefile     test  vendor
bin  config.ru  Gemfile  lib           public  README.rdoc  tmp
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么我会收到“工作目录干净”错误?(也许还有随后的“致命:远程源已经存在”错误)?

PS 我知道 .gitignore 文件在这里很重要。其内容如下:

# See https://help.github.com/articles/ignoring-files for more about ignoring files.
# …
Run Code Online (Sandbox Code Playgroud)

git github

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