python-从另一个django项目中与外部django项目进行交互
作者:互联网
我正在寻找一种从单独的django项目中与django项目的模型进行交互的方法.我的意思不是说不同的应用程序,而是指2个单独的项目和2个单独的设置文件.
我正在将一个旧的网络商店(确实是旧的,都是静态html)迁移到我们基于django的后端.为此,我创建了一个单独的django应用程序,该应用程序将使用django orm和一些用于人为辅助的解析的视图来处理所有的爬网和解析.现在,我需要使用存储在搜寻器项目中的数据填充后端的目录数据.在过去的两天中,我花了大部分时间试图找出一种方法,但是没有运气.
我理想的操作是将商店项目作为模块导入django命令类,然后以这种方式进行交互(请注意,它们正在使用2个单独的设置文件,因此setup_environ无法使用).我想避免序列化搜寻器数据,然后再将其从商店中导入,或者在django的orm之外与商店数据库进行交互,因为该项目还远远没有结束,我希望尽可能保持灵活性.
你有什么建议?只要我可以在一个脚本中与两个项目的框架进行交互,我就会提出各种想法.
解决方法:
我之前已经做过…
所以,
项目A,项目B
项目B想要调用项目A中的模型…
1)项目B使用与项目A相同的用户/登录名连接到相同的数据库.
如果是这样,那么您可以将模型从项目A导入到项目B中,然后像往常一样与它们进行交互.
2)项目B连接到与项目A不同的数据库.
您可以在项目B的设置文件中定义两个数据库.
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'users': {
'NAME': 'user_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'priv4te'
}
}
然后定义一个db router,以便django知道要从Project A获取模型数据的数据库
要么
您可以使用以下类似方式显式设置在进行ORM调用时使用的数据库:
Author.objects.using(‘other’).all()
标签:python,django,django-models 来源: https://codeday.me/bug/20191202/2086206.html