从python脚本访问django数据库

时间:2017-09-04 19:23:12

标签: python django django-models

我正在尝试从常规Python脚本中访问我的Django数据库。到目前为止,我所做的是:

import os
import django
from django.db import models

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "m_site.settings")
django.setup()

from django.apps import apps
ap=apps.get_model('py','Post')

q=ap.objects.all()

for a in q:
    print(a.title)

Django中有一个名为py的应用程序,其中有很多帖子(models.py,其中包含class Post(models.Model))。

我希望能够从常规Python脚本访问和更新此数据库。到目前为止,上面的脚本工作正常,我可以插入,更新或查询,但它看起来像是一个单独的数据库,而不是Django的py应用程序中的数据库。我做错了什么或遗失了什么?任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:7)

考虑将您的脚本编写为custom management command。这将允许您通过manage.py运行它,Django都已正确连接到您,例如。

python manage.py print_post_titles

这样的事情应该是一个好的开始:

from django.core.management.base import BaseCommand
from py.models import Post

class Command(BaseCommand):
    help = 'Prints the titles of all Posts'

    def handle(self, *args, **options):
        for post in Post.objects.all():
            print(a.title)