RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-272099

Coffee inTime's questions

Martin Hope
Coffee inTime
Asked: 2022-07-06 20:29:37 +0000 UTC

Django减去item单位,如何更安全正确?

  • 0

我正在尝试实现一个简单的商店,但我有一个问题:

背景:

  1. 我正在做表单验证(在表单类中),如果用户试图购买比他们拥有的更多的商品,那么表单将返回错误。

  2. 如果在表单验证的时候没有出现这样的问题,那么进一步在我的View类(ProductDetail)的form_valid()方法中,从这个产品中取出用户购买的数量。

而实际上的问题是,是否需要在第 2 点再次检查仓库中是否有足够的货物(直接在视图中),还是仅在第 1 点进行此检查就足够了?

会不会有条件竞争导致货物被双重拿走?还是其他一些与交易相关的问题?假设两个用户尝试同时购买 10 件和 10 件,而库存只有 10 件。

我附上了下面的代码,并用评论标记了有争议的地方。

我的视图类:

class ProductDetail(FormView):
    form_class = SaleForm
    template_name = "shop/product_detail.html"
    success_url = reverse_lazy('product_list')

    def get_initial(self):
        initial = super(ProductDetail, self).get_initial()
        initial.update({'amount': 1, 'product_id': self.kwargs['product_id']})
        return initial

    def dispatch(self, request, *args, **kwargs):
        product = self.check_product_exist(self.request, self.kwargs['product_id'])
        if not product: return redirect('product_list')

        sellers_qs = self.check_seller_exist(self.request, product)
        if not sellers_qs: return redirect('product_list')

        self.kwargs['product'] = product
        self.kwargs['sellers_qs'] = sellers_qs

        return super(ProductDetail, self).dispatch(request, *args, **kwargs)

    def get_form_kwargs(self):
        form_kwargs = super(ProductDetail, self).get_form_kwargs()
        form_kwargs['sellers_qs'] = self.kwargs['sellers_qs']
        form_kwargs['max_amount'] = self.kwargs['product'].amount
        return form_kwargs

    def form_valid(self, form):
        product = self.check_product_exist(self.request, form.cleaned_data['product_id'])

        """
        (!) Нужно ли здесь повторно делать проверку на то, есть ли на складе достаточное кол-во единиц товара!?
        """

        product.amount -= form.cleaned_data['amount']
        product.save()

        Sale.objects.create(seller=form.cleaned_data['sellers'], product=product, amount_sold=form.cleaned_data['amount'],
                            purchase_amount=product.price * form.cleaned_data['amount'])


        return super(ProductDetail, self).form_valid(form)

    def get_context_data(self, **kwargs):
        product = self.check_product_exist(self.request, self.kwargs['product_id'])

        context = super().get_context_data(**kwargs)
        context["product"] = product
        return context


    def check_product_exist(self, request, product_id):
        try:
            product = Product.objects.filter(pk=product_id)[0]
            return product
        except IndexError:
            messages.add_message(request, messages.ERROR, 'Нужный товар не был найден, возможно он был удален.')
            return None

    def check_seller_exist(self, request, product):
        sellers_qs = Seller.objects.filter(product=product.pk)
        if sellers_qs: return sellers_qs

        messages.add_message(request, messages.ERROR, 'Продавцы для данной позиции отсутствуют в базе данных.')
        return None

我的表单类:

class SaleForm(forms.Form):
    amount = forms.IntegerField(label='Кол-во', min_value=1)
    product_id = forms.IntegerField(widget=forms.HiddenInput())
    sellers = forms.ModelChoiceField(label='Продавцы', queryset=Seller.objects.none())

    def clean(self):
        cleaned_data = super().clean()
        amount = cleaned_data.get("amount")
        product_id = cleaned_data.get("product_id")
        seller = cleaned_data.get("sellers")

        if amount < 1:
            raise forms.ValidationError(
                "Указано неверное количесто товара."
            )

        if not Product.objects.filter(pk=product_id):
            raise forms.ValidationError(
                "Товар не найден в базе данных."
            )
        if Product.objects.get(pk=product_id).amount < amount:
            raise forms.ValidationError(
                "На складе нет столько единиц товара, выберите другое количество."
            )
        if not Seller.objects.filter(name=seller):
            raise forms.ValidationError(
                "Продавец не найден в базе данных."
            )
        if not Seller.objects.filter(product=product_id):
            raise forms.ValidationError(
                "Продавец не продает данный товар."
            )

    def __init__(self, *args, **kwargs):
        # Устанавливаем в форме продавцов, которые были переданны и максимальное кол-во товара, которое можно выбрать в форме.
        qs = kwargs.pop('sellers_qs')
        max_amount = kwargs.pop('max_amount')
        super(SaleForm, self).__init__(*args, **kwargs)
        self.fields['sellers'].queryset = qs
        self.fields['amount'].max_value = max_amount
        self.fields['amount'].widget.attrs['max'] = max_amount
python
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2022-06-30 00:49:33 +0000 UTC

创建简单工厂方法的问题,C++ [关闭]

  • 0
关闭 这个问题是题外话。目前不接受回复。

寻求调试帮助的问题(“为什么这段代码不起作用? ”)应该包括期望的行为、具体的问题或错误,以及在问题中重现它的最少代码。没有明确描述问题的问题对其他访问者毫无用处。请参阅如何创建一个最小的、独立的和可重现的示例。

1 年前关闭。

改进问题

在学习 OOP 时,我尝试实现一个工厂方法。

说明:在本例中,工厂方法可帮助您创建跨平台 UI 元素,而无需将主程序代码绑定到特定元素类。工厂方法在对话框类中声明。它的子类指的是各种操作系统。多亏了工厂方法,您不必为每个系统重写对话逻辑。子类可以从基本对话框继承几乎所有代码,更改按钮的类型和基本代码构建 GUI 窗口的其他元素。

我失败的实施尝试:

#include <iostream>
#include <string>

using namespace std;

class Button
{
public:
    virtual void render();
    virtual void onClick(string action);
};

class WindowsButton : public Button
{
public:
    void render() override
    {
        cout << "Windows button rendering..." << endl;
    }

    void onClick(string action) override
    {
        cout << "> Windows button onClick event!" << endl;
        cout << action << endl;
    }
};

class HtmlButton : public Button
{
public:
    void render() override
    {
        cout << "Html button rendering..." << endl;
    }

    void onClick(string action) override
    {
        cout << "> Html button onClick event!" << endl;
        cout << action << endl;
    }
};

class Dialog
{

public:
    void render()
    {
        Button okButton = this->createButton();
        okButton.onClick("Close Dialog");
        okButton.render();
    }

    virtual Button createButton();
};

class WindowsDialog : public Dialog
{
public:
    Button createButton() override
    {
        WindowsButton winButton;
        return winButton;
    }
};

class HtmlDialog : public Dialog
{
public:
    Button createButton() override
    {
        HtmlButton htmlButton;
        return htmlButton;
    }
};

int main() {
    int osType = 0; // 0 - Windows, 1 - Web
    Dialog dialog;
    if (osType == 0)
    {
        dialog = WindowsDialog();
    }
    else if (osType == 1)
    {
        dialog = HtmlDialog();
    };

    dialog.render();

}

收到的错误:

在此处输入图像描述

我哪里做错了?

c++
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2021-11-24 01:48:15 +0000 UTC

C++ 字节读取

  • 0

我正在尝试将文件中的每个字节读入缓冲区并输出:

FILE* f_stream = fopen("C:\\Users\\Neo\\source\\repos\\mt_2_lab_3\\Debug\\myfile.txt", "rb");
size_t bytes_read = 0;

char* buf[1];

if (f_stream == NULL)
    printf("\nFile stream open failed!\n");
else
{
    printf("\nFile stream successfully opened!\n");

    while ((bytes_read = fread(buf, 1, sizeof(buf), f_stream)) > 0)
    {
        cout << buf << endl;
    }
}

文件 myfile.txt 包含以下文本: abs

程序输出:

File stream successfully opened!
002AF5D8

虽然我期望它是:

a
b
s

如果你这样做:

cout << (char)buf << endl;

然后每次显示1个随机字符

如果你这样做:

cout << buf[0] << endl;

然后出现错误“在 mt_2_lab_3.exe 中的 0x1001FF5C (ucrtbased.dll) 处引发异常:0xC0000005:在地址 0xCC736261 读取时访问冲突”

我究竟做错了什么?将来,我想读取的不是 1 个字节,而是例如 256 字节并处理这 256 个字节。

c++
  • 2 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2021-10-16 20:13:38 +0000 UTC

c++ 创建套接字时出错

  • 0
#pragma comment( lib, "wsock32.lib" )
#include <winsock2.h>

    int main()
    {
        int handle = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
        cout << handle << endl;
        if ( handle <= 0 )
        {
            printf( "failed to create socket\n" );
            return false;
        }
        return 0;
    }

我正在尝试根据课程使用 socket() 创建一个套接字,但它返回 -1。可能是什么问题呢?

c++
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-10-02 21:54:09 +0000 UTC

JS 找出变化发生在哪个特定输入

  • 0

我需要将用户编辑的字段保存在数据库中。如何找出用户更改了哪个字段?我有一个包含三个或更多输入字段的表单:

<form class="contact-form" method="post">
    <div class="modal">
      <input name="1" id="postcode-input"><br>
      <input name="2" id="postcode-input"><br>
      <input name="3" id="postcode-input"><br>
      <!--- И так далее -->
    </div>
</form>
<div class="form-status-holder"></div>

我可以使用以下脚本跟踪他们的更改:

var timeoutId;
$('.contact-form #postcode-input').on('input propertychange change', function() {
    console.log('Textarea Change');
    saveToDB();
    clearTimeout(timeoutId);
});

但是,如何找出变化发生在哪个特定输入?例如,如果在 input'e 中 name="3",则将其输出到控制台。我事先不知道我会有多少个输入,但是所有的 id 都是一样的,只是名称不同。

javascript
  • 3 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-10-02 01:16:24 +0000 UTC

正则表达式如何从给定的字符串中提取商店名称?

  • 1
Finish: Painted(write color)
Personalization: Could you please paint this in gold? If there's no gold,
the "honey" color is fine
Магазин: Wooden Reds_76
Идентификатор транзакции: 2064208676
Количество: 1
Цена: 39,95 US$
Personalized item

你需要得到字符串 "Wooden Reds_76" 我只有字母: .*Магазин: (\w+),但名字也可以包含数字和空格

регулярные-выражения
  • 2 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-09-25 02:11:04 +0000 UTC

最低总票价

  • 4

如何解决以下问题,是否需要穷举枚举或递归?我在下面附上了失败的代码。

n人在地铁上。众所周知,每个人都需要进行m次旅行。地铁票分为三种:

  • 一张单程票,花费一个卢布。

  • 一个人的无限票,费用为b卢布。

  • k人的团体无限票,费用为c卢布。

输入数据格式:

  • 第一行有 3 个整数n、m和k ( 1 ≤ n , m , k ≤ 1000)

  • 第二行有 3 个整数a、b和c (1 ≤ a , b , c ≤ 1000)

输出格式:打印单个整数 - 门票的最低总成本。

例子:

входные данные
7 4 5
2 7 20
выходные данные
34

失败的代码:

n,m,k = 7,4,5
a,b,c = 2,7,20
 
cost_1 = a
cost_2 = b/m
cost_3 = (c/m)/k
 
costs = {"cost_1": cost_1, "cost_2": cost_2, "cost_3": cost_3}
 
min_cost = None
ticket = ''
for key in costs:
    if min_cost is None or costs[key] < min_cost:
        min_cost = costs[key]
        ticket = key
 
 
result = 0
if ticket == "cost_1":
   result = cost_1 * m * n
 
elif ticket == "cost_2":
    result = b * n
 
elif ticket == "cost_3":
    if n % k == 0:
        result = n/k * c
    else:
        temp = n//k
        temp_2 = n - (temp * k)
 
        min_second_cost = None
        second_ticket = ''
        for key in costs:
            if key == ticket:
                continue
            else:
                min_second_cost = costs[key]
                second_ticket = key
 
 
        temp_result = 0
        if second_ticket == "cost_1":
            temp_result = cost_1 * m * temp_2
        elif second_ticket == "cost_2":
            temp_result = b * temp_2
 
        result = temp_result + temp * k
 
print(result)
python
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-09-24 01:44:47 +0000 UTC

Python任务市长的命令

  • 1

任何人都可以提出解决问题的算法或代码吗?我在下面附上了我失败的代码。

市长团队 为了确保在选举中获胜,市长决定组建一个他的熟人组成的团队,每个人都是其他人的朋友。知道市长的所有n个熟人之间的关系,创建一个人数最多的团队m。如果有几个解,只推导出一个就足够了。

规格输入 第一行包含市长 n (n < 50) 的熟人数量。第二行包含有友好关系的对 k 的数量。接下来的 k 行包含成对的数字 - 朋友的数量。

输出 第一行包含市长团队的最大组成。下一行包含按人数升序排列的市长团队的组成。

输入数据示例

5
6
1 2
2 3
1 3
3 5
1 5
5 2

输出示例

4
1 2 3 5

我的失败尝试(仅计算正确结果的 44%):

def foo(couples):
    max_friends = 0
    result = ''
    counter = 0
    while counter < len(couples):
        temp_friends = [couples[counter][0], couples[counter][1]]
        for j in couples:
            if j[0] not in temp_friends:
                for z in temp_friends:
                    if j[0] in temp_friends:
                        break
                    if j == (z, j[0]) or j == (j[0], z): continue
                    if (z, j[0]) in couples or (j[0], z) in couples:
                        temp_friends.append(j[0])

            if j[1] not in temp_friends:
                for z in temp_friends:
                    if j[1] in temp_friends:
                        break
                    if j == (z, j[1]) or j == (j[1], z): continue
                    if (z, j[1]) in couples or (j[1], z) in couples:
                        temp_friends.append(j[1])

        temp_friends.sort()
        if max_friends < len(temp_friends):
            max_friends = len(temp_friends)
            result = " ".join(str(x) for x in temp_friends)
        counter += 1
    print(max_friends)
    print(result)

couples = [(1,2), (2,3), (3,1), (3, 4)]
foo(couples)
python
  • 2 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-08-24 23:42:35 +0000 UTC

如何在任意方向平滑移动圆,例如 110 度

  • 2

我有一个圈子:

pygame.draw.circle(sc, ORANGE, (x, y), r)

在每次迭代中,我将其更改x为or :y+1-1

x += 1
y += 1

这样我可以像这样移动它:

\|/
-o-
/|\

所以我可以将我的圆圈移动45, 90, 135,180度等。

实际上问题是,我怎样才能将我的圆圈移动 110 度?如果我的表面由像素(正方形)组成并且我只能移动,如示例所示?

\|/
-o-
/|\

x += 1.5我不能这样做,因为pygame.draw.circle它只接受整数。

这个话题对我来说很复杂,我很难形成一个问题,但我希望我能够正确解释。

完整代码:

import pygame

def main():
    WHITE = (255, 255, 255)
    ORANGE = (255, 150, 100)

    clock = pygame.time.Clock()
    FPS = 60

    WIN_WIDTH = 800
    WIN_HEIGHT = 600

    pygame.init()

    sc = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))

    # радиус и координаты круга
    r = 90
    x = WIN_WIDTH//2
    y = WIN_HEIGHT//2

    while 1:
        sc.fill(WHITE)
        pygame.draw.circle(sc, ORANGE, (x, y), r)
        pygame.display.update()

        for i in pygame.event.get():
            if i.type == pygame.QUIT:
                return

        x += 1
        y -= 1

        # Круг двигается на 135 градусов, а хотелось бы например на 110 градусов

        clock.tick(FPS)

if __name__ == "__main__":
    main()
python
  • 2 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-06-16 07:48:38 +0000 UTC

Django reverse() 在主应用程序中寻找 url 模式

  • 0

我在对话框应用程序中使用反向,在成功处理表单后尝试导航到下一页:

class CommonlyFilesUpload(FormView):
    form_class = CommonlyFilesForm
    template_name = 'dialogs/add_commonly_files.html'
    success_url = reverse('commonly_files')

    def get(self, request):
        form = CommonlyFilesForm()
        return render(request, self.template_name, context={'form': form})

    def post(self, request):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        files = request.FILES.getlist('files_field')
        if form.is_valid():
            print(form.cleaned_data['bot'])
            for f in files:
                CommonlyFile.objects.create(file=f, bot=form.cleaned_data['bot'])
            return self.form_valid(form)
        else:
            return self.form_invalid(form)

但是什么都没有出现,由于某种原因,反向在主应用程序的 urls.py 中查找此 url 模式名称:

django.core.exceptions.ImproperlyConfigured: The included URLconf 'multibot_crm.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.

如何告诉 reverse 在 url.py 中查找我需要的应用程序?像这样尝试:success_url = reverse('dialogs:commonly_files')

主应用程序(multibot_crm/urls.py):

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('bots/', include('bot_manager.urls')),
    path('dialogs/', include('dialogs.urls'))
]

对话框应用程序(dialogs/urls.py),其中 reverse() 不想看到 name = common_files 的模式:

from django.urls import path

from . import views

urlpatterns = [
    path('commonly_files/', views.CommonlyFiles.as_view(), name='commonly_files'),
    path('commonly_files/upload', views.CommonlyFilesUpload.as_view(), name='commonly_files_upload'),
]
python
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-06-10 18:05:26 +0000 UTC

Bootstrap 创建一个类似于社交的对话框。网络

  • 1

我正在尝试在社交网络中进行类似的对话,我希望这样: 在此处输入图像描述

但我得到的最多的是: 在此处输入图像描述

如何正确放置元素以及我应该给它们什么类以使其看起来像在第一个屏幕上?我失败的尝试:

<ul class="list-group card shadow">
    <a class="list-group-item list-group-item-action " href="#">
        <div class="row">
            <div class="d-flex w-100 justify-content-between">
                <img src="#" class="rounded-circle img-fluid" alt="Аватар" height="70", width="70">
                <h5 style="" class="mb-1">Никита Хмель</h5>
                <span class="border border-warning text-warning p-1">Не отвечено</span>
            </div>
            <p>Прикреплен файл</p>
        </div>
    </a>
</ul>
html
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-06-08 01:24:26 +0000 UTC

Python requests.json() 返回字符串而不是 json

  • 0

为什么 json() 向我返回一个字符串?那有什么意义呢?它不应该返回一个json对象吗?

url = 'http://127.0.0.1:8000/bots/dialogs/get/bots/tokens'
x = requests.post(url).json()
print(x) # [{"model": "bot_manager.bot", "token": 13}, {"model": "bot_manager.bot", "token": 13444}, ]
print(type(x)) # <class 'str'>

对发布请求的响应

data = serializers.serialize("json", Bot.objects.all()) 
return JsonResponse(data, safe=False)
python
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-05-02 06:47:24 +0000 UTC

C、比较运算符 ">="、"<=" 对于字符串,为什么?

  • 2

为什么在 C 中可以使用“<=”、“>=”、“>”、“<”将字符串与字符串或数字进行比较,它给出了什么?

#include <stdio.h>

int main()
{
    char c[5] = "tests";
    printf("%i", c <= "12345"); // 1
}
c
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-04-11 20:51:03 +0000 UTC

C、循环计算

  • -1

给定一个自然数n,一个实数x。计算: 在此处输入图像描述

我失败的尝试:

#include <stdio.h>
#include <math.h>
#include <locale.h>

int main() {
    setlocale(0, "");

    unsigned int n;
    float x;
    float y = 0;

    printf("Задайте числа n и x:\n");
    scanf("%u%f", &n, &x);

    int k;
    for (k = 1; k <= n; ++k)
    {
        y += (k / k + 1) - powf( cosf( fabsf(x)), k);
    }

    printf("%f\n", y);

    return 0;
}

失败是因为 递归计算比每次迭代的计算更优化(这是我得到它的唯一方法)。如何重写此代码以便递归进行计算?

c
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-02-07 15:10:25 +0000 UTC

这个菜单在 Redis 中的实现有多正确?

  • 0

现在我将菜单存储在 Redis 中,每个菜单项都是一个单独的条目。每个菜单项与其父菜单(1 到 1)和子菜单(1 到多个)相关联。

创建菜单项如下所示:

  1. 我创建菜单项:

    HMSET menu_item:1 menu_title 主菜单

    HMSET menu_item:2 menu_title 我的个人资料

    HMSET menu_item:3 menu_title 我的统计

  2. 我告诉每个菜单它的“父”是谁(它总是 1)

    SADD 菜单项:1:父 0

    SADD 菜单项:2:父项 1

    SADD menu_item:3:parent 2

  3. 我向菜单项指出他们的“孩子”是谁,如果有的话(可能有几个)

    SADD menu_item:1:儿童 2

    SADDmenu_item:2:儿童 3

我在这个结构中遇到的问题是:

当我想向用户显示菜单时,我需要获取其父级 == 当前用户菜单项编号的所有菜单项。为此,我使用 获取当前菜单的“子项” SMEMBERS menu_item:1:childs,例如返回,{'4','2','6'}然后我必须创建一个管道,并在内部循环中依次获取每个子项HGETALL,然后排序使用 python 编程语言生成的数组(y 每个菜单项按自己的顺序)。

问题 我是否完全正确地实现了菜单,有没有办法做得更好,例如以某种方式避免管道中的循环,您必须依次选择每个元素?其实我需要经常对存储执行如下查询(我会用SQL举例)

如何在 SQL db 中获取特定菜单项的子项:

1) SELECT * FROM `menu_items` WHERE `parent_id` = 1 ORDER BY `position` ASC
redis
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-02-05 05:09:26 +0000 UTC

Redis为外部连接设置IP地址

  • 0

文档说:

By default, if no "bind" configuration directive is specified, Redis listens
for connections from all the network interfaces available on the server.
It is possible to listen to just one or multiple selected interfaces using
the "bind" configuration directive, followed by one or more IP addresses.

Examples:

bind 192.168.1.100 10.0.0.1
bind 127.0.0.1 ::1

但是,我绝对不清楚“绑定 192.168.1.100 10.0.0.1”和“绑定 127.0.0.1::1”是什么意思

为什么第一次绑定有两个IP,它给了什么?

为什么在第二个例子::1中,它给出了什么?

假设我为外部连接添加了一个 IP,如下所示:

bind 94.103.**.***

连接此IP时如何设置密码?

redis
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-01-27 10:26:49 +0000 UTC

Python如何将字符串绑定到函数?

  • 2

面临以下问题: 很多时候,在创建聊天机器人的时候,需要处理各种用户命令,基本上我做了以下步骤:

  1. 我创建了一个处理特定命令的函数

  2. 我接受来自用户的消息并使用 if-elif 构造将其发送到所需的函数

但是这种方法有一个很大的缺点:你需要隔离多个 if-elif,例如:

new_message = 'персики' 

if new_message == 'клубника':
    get_strawberry(new_message)
elif new_message == 'апельсины':
    get_orange(new_message)
elif new_message == 'персики':
    get_peaches(new_message)

等等。

有什么办法可以避免这种情况吗?

我曾经在 Flask 中遇到过重写函数(应该将页面返回给用户)的装饰器,并且网站上的路径被传递给这些装饰器,当路径与当前用户路径匹配时,这个函数就起作用了。但是如何实现它,它有名字吗?这样您就可以找到信息,或者有人可以举个例子。因为我完全无法理解如何通过将“路径”或在我的情况下是一个字符串传递给写在这个函数之上的装饰器来强制调用函数。

python
  • 3 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-12-13 22:12:32 +0000 UTC

存储英语字母表中所有可能单词的字典的名称是什么?[关闭]

  • -1
关闭。这个问题需要澄清或补充细节。目前不接受回复。

想改进这个问题?通过编辑此帖子添加更多详细信息并澄清问题。

2年前关闭。

改进问题

我忘记了这个“字典”的名称,它以以下格式存储所有可能的英文字符序列,这就是为什么它还存储英文字母表中所有可能的单词:a ab ba abc bca cba cab bac

以此类推,无穷无尽。它叫什么?我忘了一个词,我真的需要它。

поиск
  • 2 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-12-05 00:09:34 +0000 UTC

Python "\n" 在从 db 返回的字符串中不起作用

  • 2

我在 MongoDB 数据库中存储不同的字符串,例如:"Abc \n Abc"当我尝试使用 print(my_string) 打印它时,我得到输出:"Abc \n Abc",而不是预期的:

"Abc 
Abc"

这是代码本身:

my_string = get_one_string_from_bd()
print(my_string)
print(type(my_string))
print(repr(my_string))

结论:

Abc \n Abc
<class 'str'>
Abc \\n Abc

我做错了什么,如何让换行符工作?如果您在字符串中添加 (n 两根棍子,用一根棍子替换 n,由于某种原因在本网站上它被替换为 1).replace("\n", "\n") 到字符串,问题就解决了,但是这有点奇怪。

python
  • 1 个回答
  • 10 Views
Martin Hope
Coffee inTime
Asked: 2020-11-30 23:37:01 +0000 UTC

BeautifulSoup4 根据 h3 标签获取内容并删除该标签

  • 2

我在解析时得到这个 HTML 代码:

<div class="row tab-pane" id="tab-description">

  <div class="col-md-6">
        <h3>Описание Makita 4329 Лобзик электрический</h3>
        <ul>
            <li><span>Новый эргономичный дизайн </span></li>
            <li><span>Удобная D-образная рукоятка с резиновыми вставками </span></li>
            <li>Маятниковый ход </li>
        </ul>
    </div>

    <div class="col-md-6">
        <h3>Характеристики Makita 4329 Лобзик электрический</h3>
        <table class="reviewtab table table-striped">
            <tbody>
                <tr>
                    <td>Производитель</td>
                    <td class="odd" itemprop="brand"> Makita </td>
                </tr>
                <tr>
                    <td>Страна происхождения</td>
                    <td class="odd"> Япония </td>
                </tr>
                <tr>
                    <td>Штрих код:</td>
                    <td class="odd">088381083102</td>
                </tr>
            </tbody>
        </table>
    </div>

</div>

它有我需要的 2 个 div,类为“col-md-6”。我需要得到除h3之外的所有这些,这是一个例子:

获取描述

<ul>
    <li><span>Новый эргономичный дизайн </span></li>
    <li><span>Удобная D-образная рукоятка с резиновыми вставками </span></li>
    <li>Маятниковый ход </li>
</ul>

我得到特征

<table class="reviewtab table table-striped">
    <tbody>
        <tr>
            <td>Производитель</td>
            <td class="odd" itemprop="brand"> Makita </td>
        </tr>
        <tr>
            <td>Страна происхождения</td>
            <td class="odd"> Япония </td>
        </tr>
        <tr>
            <td>Штрих код:</td>
            <td class="odd">088381083102</td>
        </tr>
    </tbody>
</table>

以下是我遇到的问题:

1)可能缺少其中一个块,您需要以某种方式“理解”描述在哪里,以及特征在哪里。在这种情况下它会流行什么,在这种情况下应该使用库的哪些方法?

2)我怎样才能删除我不需要的h3s?

python
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5