相关疑难解决方法(0)

什么是一些优秀的Python ORM解决方案?

我正在评估并考虑使用CherryPy进行一个项目,该项目基本上是来自客户端(浏览器)的JavaScript前端,后端与后端的Python Web服务对话.所以,我真的需要在后端快速轻量级的东西,我可以用Python实现,然后通过ORM(浏览器的JSON)与PostgreSQL DB对话.

我也在看Django,我喜欢它,因为它的ORM是内置的.但是,我认为Django可能比我真正需要的多一点(比我真正需要的功能更多= =慢?).

任何人都有使用不同Python ORM解决方案的经验,可以比较和对比他们的特性和功能,速度,效率等?

python orm

201
推荐指数
7
解决办法
13万
查看次数

替代已弃用的setup_environ()用于一次性django脚本?

我用setup_environ()了一段时间来编写一个一次性的python脚本,从命令行运行,根本不适合作为自定义manage.py命令(我的首选).它很好地设置了一切.我假设我们不赞成这个功能,因为非django pythonistas取笑djangonauts这样的魔法东西,我们厌倦了感觉很脏.所以,如果它被弃用,那么替代方案是什么?也许这是一个懒惰的问题,但我需要用什么来代替setup_environ来实现同样的效果呢?我想我可以将该函数复制/粘贴到我的脚本中,但我认为这不是弃用它的重点.(显然我仍然可以使用一个已弃用的函数,但我希望我的脚本能够存活几个版本的django)

django

46
推荐指数
3
解决办法
2万
查看次数

如何在不创建django项目的情况下使用Django 1.8.5 ORM?

我已经将Django ORM用于我的一个网络应用程序,我对它非常满意.现在我有了一个需要数据库的新需求,但Django没有提供任何其他功能.我不想花更多的时间学习像sqlalchemy这样的ORM.

我想我仍然可以
from django.db import models
创建并创建模型,但是manage.py如何不进行迁移和同步?

python django orm

20
推荐指数
3
解决办法
8863
查看次数

(Django)气流中的ORM - 有可能吗?

如何在Airflow任务中使用Django模型?

根据官方的Airflow文档,Airflow提供了与数据库(如MySqlHook/PostgresHook/etc)交互的钩子,这些钩子稍后可以在运算符中用于行查询执行.附加核心代码片段:

https://airflow.apache.org/_modules/mysql_hook.html复制

class MySqlHook(DbApiHook):
    conn_name_attr = 'mysql_conn_id'
    default_conn_name = 'mysql_default'
    supports_autocommit = True

    def get_conn(self):
        """
        Returns a mysql connection object
        """
        conn = self.get_connection(self.mysql_conn_id)
        conn_config = {
            "user": conn.login,
            "passwd": conn.password or ''
        }
        conn_config["host"] = conn.host or 'localhost'
        conn_config["db"] = conn.schema or ''
        conn = MySQLdb.connect(**conn_config)
        return conn
Run Code Online (Sandbox Code Playgroud)

https://airflow.apache.org/_modules/mysql_operator.html复制

class MySqlOperator(BaseOperator):
    @apply_defaults
    def __init__(
            self, sql, mysql_conn_id='mysql_default', parameters=None,
            autocommit=False, *args, **kwargs):
        super(MySqlOperator, self).__init__(*args, **kwargs)
        self.mysql_conn_id = mysql_conn_id
        self.sql = sql
        self.autocommit = autocommit …
Run Code Online (Sandbox Code Playgroud)

django orm django-models airflow apache-airflow

10
推荐指数
1
解决办法
2239
查看次数

将信息从Scrapy爬虫连续导出到Django应用程序数据库的最佳方法是什么?

我正在尝试构建一个类似于商店的Django应用程序.从互联网上删除项目,并随着时间的推移不断更新Django项目数据库(比如每隔几天).我正在使用Scrapy框架来执行抓取,虽然有一个实验性的DjangoItem功能,但我宁愿远离它,因为它不稳定.

现在我的计划是使用Scrapy XMLItemExporter(此处为 docs )创建已爬行项目的XML文件,并将这些loaddata文件用作XML fixture(这里的文档)进入Django项目.这似乎没问题,因为如果两个进程中的一个搞砸了,它们之间就有一个文件中介.模拟整个应用程序似乎也不是一个坏主意.

一些担忧是:

  • 这些文件可能太大而无法读入Django的内存loaddata.
  • 当我可能有更好或更简单的解决方案时,例如直接导出到数据库,在这种情况下是MySQL,我花费了太多时间.
  • 似乎没有人在网上写过这个过程,这很奇怪,考虑到Scrapy是我认为插入Django应用程序的优秀框架.
  • 没有关于在Django的文档上手动创建Django灯具的明确指南 - 看起来它更倾向于从应用程序本身转储和重新加载灯具.

实验性DjangoItem的存在表明Scrapy + Django是一个很受欢迎的选择,因为这里有一个很好的解决方案.

我非常感谢有关此事的任何解决方案,建议或智慧.

django production-environment scrapy django-fixtures

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

Django之外的Django模型

我有一个非Django项目,我想使用Django模型进行数据访问层。

在中添加了模型库 requirements.txt
django-model-utils==3.1.1

并按如下所示进行代码设置:

from django.conf import settings
from django.db import models

settings.configure(
  DATABASE_ENGINE='django.db.backends.mysql',
  DATABASE_NAME='***',
  DATABASE_USER='***',
  DATABASE_PASSWORD='***',
  DATABASE_HOST='***',
  DATABASE_PORT='***')

class Bus(models.Model):
  class Meta:
    db_table = 'my_custom_bus'

  bus_name = models.CharField(max_length=20)
  bus_description = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

但是当我运行上面的代码时,出现以下错误: django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

为了解决上述错误,我跑了:

import django  
django.setup()
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试时,我得到:
Bus doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS

我是否在这里缺少某些设置,还是在python中只有lib的轻量模型?

python django django-models

5
推荐指数
1
解决办法
674
查看次数

从新脚本访问django模型

我已经看到很多关于如何在项目之外使用django模型的答案.但我没有成功.我试图实现这个答案,但我得到一个错误.我在我的应用程序中创建了一个新文件"script.py".

script.py

from django.conf import settings
settings.configure(
    DATABASE_ENGINE = 'sqlite3',
    DATABASE_NAME = '/home/shivam/study/Python/automation/project/db.sqlite3',
    DATABASE_USER = '',
    DATABASE_PASSWORD = '',
    DATABASE_HOST = '',
    DATABASE_PORT = '',
    TIME_ZONE = 'America/New_York',
)
from models import *
Run Code Online (Sandbox Code Playgroud)

当我运行此脚本时,出现错误.

Traceback (most recent call last):
  File "script.py", line 11, in <module>
    from models import *
  File "/home/shivam/study/Python/automation/project/videos/models.py", line 11, in <module>
    class video(models.Model):
  File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/db/models/base.py", line 105, in __new__
    app_config = apps.get_containing_app_config(module)
  File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/apps/registry.py", line 237, in get_containing_app_config
    self.check_apps_ready()
  File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/apps/registry.py", line 124, in …
Run Code Online (Sandbox Code Playgroud)

python django

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