gct*_*gct 67 python mysql django
我有一个很好的数据库,我在Django中创建,我想通过我的网站之外的一些python脚本接口,所以我很好奇是否可以在Django之外使用Django数据库API网站,如果有的话,有没有人知道如何做到这一点?谷歌并没有因此而受到很多打击.
Fog*_*ird 65
您只需在进行任何调用之前配置Django设置,包括导入模型.像这样的东西:
from django.conf import settings
settings.configure(
DATABASE_ENGINE = 'postgresql_psycopg2',
DATABASE_NAME = 'db_name',
DATABASE_USER = 'db_user',
DATABASE_PASSWORD = 'db_pass',
DATABASE_HOST = 'localhost',
DATABASE_PORT = '5432',
TIME_ZONE = 'America/New_York',
)
Run Code Online (Sandbox Code Playgroud)
再次确保在运行之前运行该代码,例如:
from your_app.models import *
Run Code Online (Sandbox Code Playgroud)
然后像往常一样使用DB API.
Gab*_*Gab 15
对于django 1.7,我使用以下方法来启动和运行.
settings.py:
from django.conf import settings
settings.configure(
DATABASES={
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'name',
'USER': 'usr',
'PASSWORD': 'secret',
'HOST': '127.0.0.1',
'PORT': '5432',
},
},
TIME_ZONE='America/Montreal',
)
Run Code Online (Sandbox Code Playgroud)
在包含启动例程的文件中
import os
import django
import v10consolidator.settings
from myapp.models import *
os.environ.setdefault(
"DJANGO_SETTINGS_MODULE",
"myapp.settings"
)
django.setup()
Run Code Online (Sandbox Code Playgroud)
Dmi*_*nko 12
将在django 1.6中删除更新 setup_environ
如果您能够导入settings.py文件,请查看方便的setup_environ命令.
from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)
#here you can do everything you could in your project
Run Code Online (Sandbox Code Playgroud)
我正在寻找 django 3.0 的答案,但上述方法都不适合我。
我在https://docs.djangoproject.com/en/3.0/topics/settings/阅读了官方文档,这个脚本对我有用。
我的脚本 db_tasks.py 像这样在 mysite 中。
mysite
mysite
db.sqlite3
db_tasks.py
manage.py
polls
Run Code Online (Sandbox Code Playgroud)
db_tasks.py
import os
import django
os.environ['DJANGO_SETTINGS_MODULE'] = 'dashboard.settings'
django.setup()
from polls.models import Question
print(Question.objects.all())
out: <QuerySet [<Question: WTU?]>
Run Code Online (Sandbox Code Playgroud)
Here is the code I use. Just replace your_project with your Django project name, yourApp with your Django app name, any_model with the model you want to use in models file and any_fild with the field you want to get from the database:
from django.conf import settings
import django
from your_project.settings import DATABASES, INSTALLED_APPS
settings.configure(DATABASES=DATABASES, INSTALLED_APPS=INSTALLED_APPS)
django.setup()
from yourApp.models import *
print(any_model.objects.all()[0].any_fild)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19038 次 |
| 最近记录: |