【问题标题】:I want to send terminal print data to database我想将终端打印数据发送到数据库
【发布时间】:2021-01-11 11:46:45
【问题描述】:

我是 Django 新手,我创建了一个 selenium 项目,它可以自动为手机充值。完成“充值成功”后,我需要它将成功的收据发送到我的数据库中。我使用print(order_id.text) 在我的终端中获取收据。现在我不知道如何将该收据发送到我的数据库。

【问题讨论】:

  • 您的amazonpay 函数调用是在视图之前指定的?
  • 欢迎来到 SO!请通过提供minimal reproducible example 帮助我们帮助您
  • 还请提供更多详细信息,例如 1) 您使用的数据库 2) 这两个脚本之间的关系。谢谢!
  • 我正在使用 sqlite3

标签: python django selenium


【解决方案1】:

可能最简单的实现方法是使用custom management command [Django-doc]。在您的amazon 应用程序中,您可以定义管理命令:

amazon/
    management/
        commands/
            amazonpay.py
    # …

在该amazonpay.py 文件中,您然后实施自定义管理命令:

# amazon/management/commands.amazonpay.py

from django.core.management.base import BaseCommand
from amazon.models import Amazon

class Command(BaseCommand):
    help = 'Some description...'

    def handle(self, *args, **options):
        # … run selenium …
        Amazon.objects.create(
            o=ord_id
        )

然后您可以使用以下命令运行此命令:

python3 manage.py <b>amazonpay</b>

其实runservermakemigrations等也都定义为管理命令。

【讨论】:

  • moduleNotFoundError: No module named 'DJANGO_SETTINGS_MODULE' 我必须安装任何类型的库吗?正如我已经在 setting.py 中提到我的应用程序
  • django.core.exceptions.ImproperlyConfigured:请求设置 INSTALLED_APPS,但未配置设置。您必须在访问设置之前定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure()。
  • @srfreak: 如果你运行manage.py runserver--settings 那么你当然需要对amazonpay 做同样的事情。
  • TypeError: create() 接受 1 个位置参数,但给出了 2 个
  • @srfreak: 但你应该使用o=ord_id,而不是ord_idAmazon 模型当然需要有一个名为o 的字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多