小编Try*_*yph的帖子

如何使用tsvector字段使用postgresql全文搜索在Django中执行排名?

我需要使用postgresql全文搜索功能和带django.contrib.postgres模块的Django执行排名查询.

根据该文档,SearchRank通过执行以下操作,使用该类很容易做到这一点:

>>> from django.contrib.postgres.search import SearchQuery, SearchRank, SearchVector
>>> vector = SearchVector('body_text')
>>> query = SearchQuery('cheese')
>>> Entry.objects.annotate(rank=SearchRank(vector, query)).order_by('-rank')
Run Code Online (Sandbox Code Playgroud)

这可能效果很好,但这并不是我想要的,因为我的表中有一个字段已经包含了我想要使用的tsvectorized数据(而不是在每个搜索查询中重新计算tsvector).

不幸的是,我无法弄清楚如何将这个tsvector字段提供给SearchRank类而不是SearchVector原始数据字段上的对象.

有人能指出如何处理这个问题吗?

编辑:当然,只是尝试SearchVector从tsvector字段实例化一个不起作用并失败并出现此错误(大约是因为我从法语翻译它):

Djang:函数to_tsvector(tsvector)不存在

django postgresql full-text-search

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

sklearn randomizedSearchCV中的参数列表,如GridSearchCV?

我有一个问题,我想测试多个不具有相同命名参数的模型.您将如何RandomizedSearchCV使用此示例中的管道参数列表GridSearchCV

示例来自:http:
//scikit-learn.org/stable/auto_examples/plot_compare_reduction.html

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.svm import LinearSVC
from sklearn.decomposition import PCA, NMF
from sklearn.feature_selection import SelectKBest, chi2

pipe = Pipeline([
    # the reduce_dim stage is populated by the param_grid
    ('reduce_dim', None),
    ('classify', LinearSVC())
])

N_FEATURES_OPTIONS = [2, 4, 8]
C_OPTIONS = [1, 10, 100, 1000]
param_grid = [
    {
        'reduce_dim': [PCA(iterated_power=7), NMF()],
        'reduce_dim__n_components': N_FEATURES_OPTIONS, …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn

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

如何使用 Django 的开发服务器提供收集的静态文件?

我正在尝试使 Django 的开发服务器为python manage.py collectstatic命令收集的静态文件提供服务。目前我失败了。

我的 Django 设置文件声明了这一点:

STATIC_ROOT = os.path.join(WWW_PATH, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(ROOT_PATH, 'front', 'public'),
    os.path.join(ROOT_PATH, 'front', 'dist')
)
Run Code Online (Sandbox Code Playgroud)

这使得collectstatic命令从os.path.join(ROOT_PATH, 'front', 'public')和复制文件os.path.join(ROOT_PATH, 'front', 'dist')STATIC_ROOT,并且它完美地工作。

我假设它还会告诉 Django 在STATIC_ROOT目录中查找静态文件,我错了。即使STATIC_ROOT目录不存在,Django 也能够提供静态文件。但是如果os.path.join(ROOT_PATH, 'front')缺少 ,Django 将不再提供静态文件。

这表明 Django 继续从源目录提供静态文件,而不是从STATIC_ROOT.

所以我想知道是否有一种方法可以指示 Django 的开发服务器从STATIC_ROOT. 任何提示?

编辑:

在@e4c5 的回答之后,我urls.py像这样修改了我的根:

static_patterns = [
    url(r'^$', TemplateView.as_view(template_name='index.html'))
]

urlpatterns = [
    url(r'^', include(static_patterns)), …
Run Code Online (Sandbox Code Playgroud)

django

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

找不到满足烧瓶要求的版本(来自版本:)找不到烧瓶的匹配发行版

使用 pip 安装包时发生异常。我尝试安装 numpy、flask 等。但低于错误。

C:\Users\ABC>pip install flask
Collecting flask
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x0667CB50>: Failed to establish a new connection: [Errno 11002] getaddrinfo failed')': /simple/flask/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x0667C190>: Failed to establish a new connection: [Errno 11002] getaddrinfo failed')': /simple/flask/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x0667C7F0>: Failed to establish a new connection: …
Run Code Online (Sandbox Code Playgroud)

python pip

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

如何使用pytest对SQLAlchemy Orm类进行单元测试

我想编写一些py.test代码来测试2个基于此Tutorial创建的简单sqlalchemy ORM类。问题是,如何在py.test中将数据库设置为测试数据库并在测试完成后回滚所有更改?是否可以模拟数据库并运行测试而无需实际连接到数据库?

这是我的课程的代码:


from sqlalchemy import create_engine, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker, relationship

eng = create_engine('mssql+pymssql://user:pass@host/my_database')

Base = declarative_base(eng)
Session = sessionmaker(eng)
intern_session = Session()

class Author(Base):
    __tablename__ = "Authors"

    AuthorId = Column(Integer, primary_key=True)
    Name = Column(String)  
    Books = relationship("Book")

    def add_book(self, title):
        b = Book(Title=title, AuthorId=self.AuthorId)
        intern_session.add(b)
        intern_session.commit()

class Book(Base):
    __tablename__ = "Books"

    BookId = Column(Integer, primary_key=True)
    Title = Column(String)      
    AuthorId = Column(Integer, ForeignKey("Authors.AuthorId"))    

    Author = relationship("Author")                           

Run Code Online (Sandbox Code Playgroud)

python sqlalchemy pytest python-3.x

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

ValueError: 选项名称已添加 pytest

#conftest.py

include pytest
def pytest_addoption(parser):
   parcer.addoption("--add", action="append")

@pytest.fixture(scope='session')
def adding(request):
    name_value = request.config.option.add
    if name_value == "plus":
        arg1 = 1
        arg2 = 2
        return arg1, arg2

#addition.py

@mark.first
def test_Valid_US_Phone_Number_1(adding):
    val1, val2 = adding
    assert val1 + val2 == 3
Run Code Online (Sandbox Code Playgroud)

运行命令

$pytest -m first plusplus.py --add plus
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,有人可以帮忙吗?

File "c:\users\g702823\appdata\local\continuum1\anaconda3\lib\site-packages\_pytest\config\argparsing.py", line 72, in addoption
self._anonymous.addoption(*opts, **attrs)

File "c:\users\g702823\appdata\local\continuum1\anaconda3\lib\site-packages\_pytest\config\argparsing.py", line 303, in addoption
raise ValueError("option names %s already added" % conflict)

ValueError: option names {'--add'} already added
Run Code Online (Sandbox Code Playgroud)

python pytest valueerror

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

为什么使用相同的处理程序无法多次读取文件?

我打开几个文本文件(STL)并使用之前定义的两个函数对它们运行几个操作.准确地说,函数"point_stl"提取STL文件中包含的点的坐标,而函数"point_cloud"从STL文件中提取点而不重复.

with open(folder+"bone_set1.stl", "r") as f1, open(folder+"bone_set2.stl", "r") as f2:
    var1 = point_stl(f1,f2)
    var2 = point_cloud(f1,f2)
Run Code Online (Sandbox Code Playgroud)

为什么看起来我不能使用变量f1和f2的两倍?如果我在第一个函数中使用它们,我在第二个函数中没有得到任何结果,反之亦然.

python function

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