اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

يمكنك أن تقوم بذلك من خلال العلامة < بدلًا من << ليصبح الأمر كالتالي:

./manage.py shell < clear_db.py

يمكنك أيضًا أن تقوم بتنفيذ السكريبت من خلال الدالة exec، كالتالي:

$ ./manage.py shell
...
>>> exec(open("./clear_db.py").read())

وإن كنت تستعمل بايثون 2.7 فيمكنك أن تستخدم الدالة execfile، كالتالي:

$ ./manage.py shell
...
>>> execfile('clear_db.py')

إن كنت تستعمل Windows Powershell فسوف تحتاج إلى إستخدام Get-Content:

Get-Content clear_db.py | .\manage.py shell

على العموم لا يُنصح بفعل ذلك من shell - وهذا لأنه لا ينبغي لك تنفيذ سكريبتات عشوائية من بيئة Django (ولكن هناك طرقًا للتغلب على ذلك).

إذا كان هذا السكريبت سيتم تشغيله عدة مرات، فمن الجيد إعداده كأمر مخصص، كالتالي:

./manage.py clear_db

للقيام بذلك، قم بإنشاء ملف باسم clear_db.py في مجلد management، وفي هذا الملف، حدد الأمر المخصص الخاص بك (تأكد من أن اسم الملف هو اسم الأمر الذي تريد التنفيذ منه.):

from django.core.management.base import BaseCommand

class Command(BaseCommand):
    def handle(self, **options):
        # قم بكتابة السكريبت هنا

 

  • 0
نشر

إضافة إلى الطرق التي ذكرها سامح، يمكنك القيام بذلك كالتالي:

import os, django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
django.setup()
# الآن يمكن أن تضع الكود هنا...

وهذه الطريقة تجنبك حدوث بعض الاستثناءات مثل django.core.AppRegistryNoReady
أو:

import sys, os
sys.path.append('/path/to/your/django/app')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings
# أضف ماتريده بعدها

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...