我需要使用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)不存在
我有一个问题,我想测试多个不具有相同命名参数的模型.您将如何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) 我正在尝试使 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) 使用 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) 我想编写一些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) #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) 我打开几个文本文件(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 ×5
django ×2
pytest ×2
function ×1
pip ×1
postgresql ×1
python-3.x ×1
scikit-learn ×1
sqlalchemy ×1
valueerror ×1