我有一个很好的数据库,我在Django中创建,我想通过我的网站之外的一些python脚本接口,所以我很好奇是否可以在Django之外使用Django数据库API网站,如果有的话,有没有人知道如何做到这一点?谷歌并没有因此而受到很多打击.
我想将Django ORM作为独立使用.尽管花了一个小时搜索谷歌,我仍然有几个问题:
models.py并运行syncdb以自动设置表和关系,还是只能使用现有Django项目中的模型?PYTHONPATH.如果您不打电话给现有型号需要吗?我想最简单的事情就是有人发布一个基本模板或演练过程,澄清文件的组织,例如:
db/
__init__.py
settings.py
myScript.py
orm/
__init__.py
models.py
Run Code Online (Sandbox Code Playgroud)
基本要领:
# settings.py
from django.conf import settings
settings.configure(
DATABASE_ENGINE = "postgresql_psycopg2",
DATABASE_HOST = "localhost",
DATABASE_NAME = "dbName",
DATABASE_USER = "user",
DATABASE_PASSWORD = "pass",
DATABASE_PORT = "5432"
)
# orm/models.py
# ...
# myScript.py
# import models..
Run Code Online (Sandbox Code Playgroud)
而且你是否需要运行类似的东西:django-admin.py inspectdb......
(哦,我正在运行Windows,如果它改变了有关命令行参数的任何内容.).
使用Django框架开发命令行界面工具有什么意义吗?在我的情况下,将没有任何图形界面.我可以使用它获得什么好处?或者您可能知道CLI的任何其他有用的框架?我想强调用REST API发出HTTP请求.
更新:谢谢你们!我想使用REST API而不是在我的工具中创建它.
按照本指南,我可以通过调用python main.py.
??? data
? ??? __init__.py
? ??? migrations
? ? ??? __init__.py
? ??? models.py
??? main.py
??? manage.py
??? settings.py
Run Code Online (Sandbox Code Playgroud)
其中 main.py 看起来像这样:
import os, django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
django.setup()
from data.models import Foo, Bar #...
print(Foo.objects.all()) #this works fine
Run Code Online (Sandbox Code Playgroud)
我想要做的是把它变成一个叫做“包” db,看起来像这样:
??? data
? ??? __init__.py
? ??? migrations
? ? ??? __init__.py
? ??? models.py
??? __init__.py
??? manage.py
??? settings.py
Run Code Online (Sandbox Code Playgroud)
而在__init__.py中的db包,我想这样做:
import os, django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings') …Run Code Online (Sandbox Code Playgroud) 我有一个工作正常的django应用程序.我希望能够利用该模型从另一个(独立)python应用程序访问数据库.这就是我所拥有的(这不起作用.)
import sys
import os
sys.path.append(os.path.abspath("/home/pi/garageMonitor/django/garageMonitor"))
os.environ['DJANGO_SETTINGS_MODULE'] = 'garageMonitor.settings'
import models
config = models.SystemConfiguration.objects.filter(idSystemConfiguration=1)
config = config[0]
for x in config.__dict__:
print x
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
File "/home/pi/garageMonitor/django/lib/webWatcher.py", line 14, in <module>
import models
File "/home/pi/garageMonitor/django/garageMonitor/models.py", line 11, in <module>
class DoorClosing(models.Model):
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 131, in __new__
'app.' % (new_class.__name__, model_module.__name__)
django.core.exceptions.ImproperlyConfigured: Unable to detect the app label for model "DoorClosing
Run Code Online (Sandbox Code Playgroud)
DoorClosing是我的models.py文件中的一个类.类似的代码在django框架内工作.我错过了什么?