Django main urls फ़ाइल में ऐप्स से url आयात कैसे करें
मेरे पास निम्नलिखित परियोजना संरचना है।

यह मेरा INSTALLED_APPS सरणी है।
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'climemanage.clients'
]
तब मैंने clients.urls
फ़ाइल को मूल urls
फ़ाइल में नीचे के रूप में जोड़ने का प्रयास किया ।
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('clients/', include('clients.urls'))
]
लेकिन मुझे यह त्रुटि मिल रही है। ModuleNotFoundError: No module named 'clients'
मैं निम्नलिखित पथ का उपयोग करके इसे हल कर सकता हूं। include('climemanage.clients.urls')
लेकिन मैं climemanage
रास्ते से हटना चाहता हूं ।
मैंने विभिन्न तरीकों की कोशिश की है,
import clients
import climemanage.clients
from climemanage import clients
लेकिन कुछ भी काम नहीं कर रहा है।
जवाब
आपका प्रोजेक्ट स्ट्रक्चर गलत है। ऐसा लगता है कि या तो startproject
हिस्सा या startapp
हिस्सा गलत हो सकता है। यह सबसे अच्छा हो सकता है यदि आप सूची बना सकते हैं कि आप इस बिंदु तक कैसे पहुंचे। कृपया अपने उत्तर के अंत में मेरे द्वारा तैयार की गई संरचना देखें।
आपके मामले में, आपका मुख्य settings.py
अधीन है clients
। इसका मतलब है कि इसका clients
परिणाम है startproject
। वर्तमान में आपके पास एक नहीं है app
, लेकिन आपके पास फ़ाइलों का एक गुच्छा है जो app
उस migrations
फ़ोल्डर में अब उसके साथ दिखाई देना चाहिए ।
इसका उपयोग, आप clients.urls
मुख्य से कभी भी कुछ भी नहीं जोड़ पाएंगे urls.py
। क्योंकि आपका clients
वह स्थान है जहां आपका मुख्य urls.py
स्थित है।
मैंने सामान्य रूप से यहां क्या किया (यह मैक संस्करण, यदि आप विंडोज़ का उपयोग कर रहे हैं, तो आपको django tutorial की आवश्यकता है)
$ mkdir clienmanage $ cd clienmanage
$ python3 -m venv myvenv # set up virtual environment $ source myvenv/bin/activate # go into virtual envionment
After this step you can install django
उसके बाद, जब आप अपनी startproject
कमांड चलाते हैं , तो सुनिश्चित करें कि नीचे की तरह चलाएं:
django-admin startproject project .
नोट .
अंत में।
उसके बाद, आपके पास संरचना होनी चाहिए जैसे:
clienmanage
|--- manage.py
|--- project
| |--- __init__.py
| |--- settings.py
| |--- urls.py
| |--- wsgi.py
|--- virtual
|
|___ requirements.txt
इसके बाद आप करेंगे:
$ python manage.py startapp clients
clienmanage
|
|---clients # this is the app
| |---migrations
| |---models.py
| |---views.py
| |---apps.py
|--- manage.py
|--- project
| |--- __init__.py
| |--- settings.py
| |--- urls.py
| |--- wsgi.py
|--- virtual # a folder
|
|___ requirements.txt
इस कदम के बाद, django अपने आप app
स्तर उत्पन्न नहीं करेगा urls.py
और forms.py
। आपको इन फ़ाइलों को app
फ़ोल्डर के अंदर उत्पन्न करना चाहिए (मेरे उदाहरण के मामले में clients
)
**** यदि आप एक अलग निर्देशिका में एप्लिकेशन रखना चाहते हैं तो आप गंतव्य निर्दिष्ट कर सकते हैं।
$ python manage.py startapp <app_label> [destination]
उपरोक्त मामले में, यदि आप अपने app
अंदर करना चाहते हैंproject
$ python manage.py startapp clients project/clients
आप इस मार्ग ले लिया है, तो जोड़ना सुनिश्चित करें project.clients
के बजाय clients
अपने में INSTALLED_APPS
।
मुख्य urls.py फ़ाइल में आप निम्न कोड स्निपेट जोड़ सकते हैं।
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('something/', include('clients.urls')),
]
Settings.py फ़ाइल में
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'webapi', # like in my case my appname was webapi
'nameofyourapp', #pay attention here
]
कृपया मुझे अपना client.urls.py पेज दिखाएं।