我在swagger.yml中有以下服务。编写服务是为了可以多次传递page_id。例如/pages?page_id[]=123&page_id[]=542
我检查了此链接https://swagger.io/specification/,但无法理解如何更新yml,以便可以多次传递id。
我看到我必须设置collectionFormat但不知道如何。
我尝试像下面一样更新它,但没有运气https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md。
它生成的URL,如“ HTTP://本地主机:0000 /页PAGE_ID = 123%2C%20542 `
'/pages':
get:
tags:
-
summary: get the list of pages
operationId: getPages
produces:
- application/json
parameters:
- name: page_id
in: query
description: some description
required: false
type: string
collectionFormat: multi
- name: page_detail
in: query
description: some description
required: false
type: string
responses:
'200':
description: OK
'401':
description: Authentication Failed
'404':
description: Not Found
'503':
description: Service Not Available
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Django REST API 删除“Product”对象,但不知道如何执行此操作。
序列化器:
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ('id', 'product_name', 'measure', 'barcode')
Run Code Online (Sandbox Code Playgroud)
我可以使用此功能创建产品
def create_product(request):
data = request.POST
serializer = ProductSerializer(data=data)
if serializer.is_valid():
serializer.save()
Run Code Online (Sandbox Code Playgroud)
但不知道怎么删除
没有 serializer.delete() 方法。
对于返回如下查询集的函数使用什么类型的提示?
def _get_cars_for_validation(filter_: dict) -> QuerySet:
return (
Car.objects.filter(**filter_)
.values("id", "brand", "engine")
.order_by("id")
)
Run Code Online (Sandbox Code Playgroud)
mypy 返回错误
不兼容的返回值类型(得到“ValuesQuerySet[Car, TypedDict({'id': int,'brand': str,'engine': str})]”,预期为“QuerySet[Any]”)
我会使用,ValuesQuerySet但它已在 Django 1.9 中删除。ValuesQuerySet报告mypy来自3rd 方库django-stubs(我无法导入它;这实际上可能吗?)。
是否可以从mailjet 中实际删除a ?contact
他们的联系 API 文档甚至没有delete列为受支持的操作。
from mailjet_rest import Client
mailjet = Client(auth=(MAILJET_API_KEY, MAILJET_API_SECRET), version='v3')
mailjet.contact.delete(<contact-id>).json()
{'ErrorInfo': '', 'ErrorMessage': 'Operation not allowed', 'StatusCode': 401}
Run Code Online (Sandbox Code Playgroud)
我有兴趣删除 a contact,而不是 a list recipient,因此这个问题不是如何使用mailjet api和php从列表中删除联系人的重复?.
我需要计算每个卖家 ID 的期间中位数(请参阅下面的简单模型)。问题是我无法构建 ORM 查询。
模型
class MyModel:
period = models.IntegerField(null=True, default=None)
seller_ids = ArrayField(models.IntegerField(), default=list)
aux = JSONField(default=dict)
Run Code Online (Sandbox Code Playgroud)
询问
queryset = (
MyModel.objects.filter(period=25)
.annotate(seller_id=Func(F("seller_ids"), function="unnest"))
.values("seller_id")
.annotate(
duration=Cast(KeyTextTransform("duration", "aux"), IntegerField()),
median=Func(
F("duration"),
function="percentile_cont",
template="%(function)s(0.5) WITHIN GROUP (ORDER BY %(expressions)s)",
),
)
.values("median", "seller_id")
)
Run Code Online (Sandbox Code Playgroud)
我认为我需要做的是以下几行
select t.*, p_25, p_75
from t join
(select district,
percentile_cont(0.25) within group (order by sales) as p_25,
percentile_cont(0.75) within group (order by sales) as p_75
from t
group by …Run Code Online (Sandbox Code Playgroud) @app.route('/select/<username>')
def select(username):
db = MySQLdb.connect("localhost","myusername","mypassword","mydbname" )
cursor = db.cursor()
cursor.execute("SELECT * FROM p_shahr")
data = cursor.fetchall()
db.close()
return render_template('select.html', data=data)
Run Code Online (Sandbox Code Playgroud)
我想编辑此脚本中的选择查询,以便
SELECT * FROm p_shahr WHERE os = username
Run Code Online (Sandbox Code Playgroud)
我应该如何编辑查询以包含上面的where 子句以设置os为username来自 URL?
我想根据不区分大小写的字段值获取所有重复项。
基本上重写这个SQL查询
SELECT count(*), lower(name)
FROM manufacturer
GROUP BY lower(name)
HAVING count(*) > 1;
Run Code Online (Sandbox Code Playgroud)
使用 Django ORM。我希望这样的事情可以解决问题
from django.db.models import Count
from django.db.models.functions import Lower
from myapp.models import Manufacturer
qs = Manufacturer.objects.annotate(
name_lower=Lower('name'),
cnt=Count('name_lower')
).filter('cnt__gt'=1)
Run Code Online (Sandbox Code Playgroud)
但当然它没有用。
知道如何做到这一点吗?
我想将多个SQLite文件移动到PostgreSQL.
这些文件中包含的数据是每月 time-series(单个*.sqlite文件中的一个月).每个都有大约300,000行.这些文件中有20多个.
我的困境是如何组织新数据库中的数据:
a)将其保存在多个表中
或
b)将其合并到一个巨大的表中,其中新列描述时间段(例如04.2016,05.2016,...)
该数据库仅用于从中提取数据(除了为新月添加数据).
我担心的是,select来自多个表(join)的数据不能很好地执行,并且查询会变得非常复杂.
我应该选择哪种结构 - 一张大桌子还是多张小桌子?
我只想对 ViewSet 使用缓存太慢:(,使用 Django REST 框架。
我这样做了:
...
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page
from django.views.decorators.vary import vary_on_cookie
...
class PRPKViewSet(viewsets.ModelViewSet):
serializer_class = PrpkSerializer
queryset = Prpk.objects.all().order_by('begin')
# Authentification !
permission_classes = (IsAuthenticated,)
# Only 'get' method
http_method_names = ['get']
# Cache requested url for each user for 2 hours
# @method_decorator(vary_on_cookie)
@method_decorator(cache_page(60*2))
def get_queryset(self):
""" allow rest api to filter by submissions """
queryset = Prpk.objects.all().order_by('begin')
highway = self.request.query_params.get('highway', None)
if highway is not None:
queryset = …Run Code Online (Sandbox Code Playgroud) 我有一个在我的系统上运行的webscraper,我想将它迁移到PythonAnywhere,但是当我移动它现在它不起作用.
恰好sendkeys似乎不起作用 - 在执行以下代码后,我从未进入下一个网页,因此属性错误会被触发.
我的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import csv
import time
# Lists for functions
parcel_link =[]
token = []
csv_output = [ ]
# main scraping function
def getLinks(link):
# Open web browser and get url - 3 second time delay.
#Open web browser and get url - 3 second time delay.
driver.get(link)
time.sleep(3)
inputElement …Run Code Online (Sandbox Code Playgroud)