Django
Django में CRUD
खोज…
** सरलतम CRUD उदाहरण **
यदि आप इन चरणों को अपरिचित पाते हैं, तो इसके बजाय यहां शुरू करने पर विचार करें । ध्यान दें कि ये चरण स्टैक ओवरफ़्लो दस्तावेज़ से आए हैं।
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
myproject / settings.py एप्लिकेशन इंस्टॉल करें
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
Myapp निर्देशिका के भीतर urls.py
नामक एक फ़ाइल बनाएं और इसे निम्नलिखित दृश्य के साथ अद्यतन करें।
from django.conf.urls import url
from myapp import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
निम्नलिखित सामग्री के साथ अन्य urls.py
फ़ाइल को अपडेट करें।
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
from myapp import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^myapp/', include('myapp.urls')),
url(r'^admin/', admin.site.urls),
]
Myapp डायरेक्टरी के अंदर templates
नाम का फोल्डर बनाएं। फिर टेम्प्लेट डायरेक्टरी के अंदर index.html
नाम की एक फाइल बनाएं। इसे निम्नलिखित सामग्री से भरें।
<!DOCTYPE html>
<html>
<head>
<title>myapp</title>
</head>
<body>
<h2>Simplest Crud Example</h2>
<p>This shows a list of names and lets you Create, Update and Delete them.</p>
<h3>Add a Name</h3>
<button>Create</button>
</body>
</html>
हमें index.html दिखाने के लिए भी एक दृश्य की आवश्यकता होती है जिसे हम view.py फ़ाइल को संपादित करके बना सकते हैं:
from django.shortcuts import render, redirect
# Create your views here.
def index(request):
return render(request, 'index.html', {})
अब आपके पास वह आधार है जिससे आप काम करने जा रहे हैं। अगला कदम एक मॉडल बनाना है। यह सबसे सरल उदाहरण संभव है ताकि आपके मॉडल-थ्रू फ़ोल्डर में निम्न कोड जोड़ें।
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class Name(models.Model):
name_value = models.CharField(max_length=100)
def __str__(self): # if Python 2 use __unicode__
return self.name_value
यह एक नाम वस्तु का एक मॉडल बनाता है जिसे हम कमांड लाइन से निम्नलिखित कमांड के साथ डेटाबेस में जोड़ देंगे।
python manage.py createsuperuser
python manage.py makemigrations
python manage.py migrate
आपको Django द्वारा किए गए कुछ ऑपरेशनों को देखना चाहिए। ये तालिकाओं को सेटअप करते हैं और एक सुपरयूज़र बनाते हैं जो एक Django संचालित व्यवस्थापक दृश्य से व्यवस्थापक डेटाबेस तक पहुंच सकता है। जिसमें से बोलते हुए, हमारे नए मॉडल को व्यवस्थापक दृश्य के साथ पंजीकृत करने देता है। Admin.py पर जाएं और निम्न कोड जोड़ें।
from django.contrib import admin
from myapp.models import Name
# Register your models here.
admin.site.register(Name)
कमांड लाइन पर वापस python manage.py runserver
अब आप सर्वर को python manage.py runserver
कमांड से python manage.py runserver
सकते हैं। आपको http: // localhost: 8000 / पर जाकर अपना ऐप देखना चाहिए। कृपया फिर http: // localhost: 8000 / admin पर नेविगेट करें ताकि आप अपने प्रोजेक्ट में एक नाम जोड़ सकें। लॉग इन करें और MYAPP तालिका के तहत एक नाम जोड़ें, हमने इसे उदाहरण के लिए सरल रखा है ताकि यह सुनिश्चित हो सके कि यह 100 वर्णों से कम है।
नाम का उपयोग करने के लिए आपको इसे कहीं प्रदर्शित करने की आवश्यकता है। डेटाबेस से सभी नाम ऑब्जेक्ट को प्राप्त करने के लिए view.py के भीतर इंडेक्स फ़ंक्शन को संपादित करें।
from django.shortcuts import render, redirect
from myapp.models import Name
# Create your views here.
def index(request):
names_from_db = Name.objects.all()
context_dict = {'names_from_context': names_from_db}
return render(request, 'index.html', context_dict)
अब index.html फ़ाइल को निम्न में संपादित करें।
<!DOCTYPE html>
<html>
<head>
<title>myapp</title>
</head>
<body>
<h2>Simplest Crud Example</h2>
<p>This shows a list of names and lets you Create, Update and Delete them.</p>
{% if names_from_context %}
<ul>
{% for name in names_from_context %}
<li>{{ name.name_value }} <button>Delete</button> <button>Update</button></li>
{% endfor %}
</ul>
{% else %}
<h3>Please go to the admin and add a Name under 'MYAPP'</h3>
{% endif %}
<h3>Add a Name</h3>
<button>Create</button>
</body>
</html>
जो CRUD में रीड को प्रदर्शित करता है। MyApp निर्देशिका के भीतर एक forms.py फ़ाइल बनाएँ। निम्नलिखित कोड जोड़ें:
from django import forms
from myapp.models import Name
class NameForm(forms.ModelForm):
name_value = forms.CharField(max_length=100, help_text = "Enter a name")
class Meta:
model = Name
fields = ('name_value',)
निम्न तरीके से index.html अपडेट करें:
<!DOCTYPE html>
<html>
<head>
<title>myapp</title>
</head>
<body>
<h2>Simplest Crud Example</h2>
<p>This shows a list of names and lets you Create, Update and Delete them.</p>
{% if names_from_context %}
<ul>
{% for name in names_from_context %}
<li>{{ name.name_value }} <button>Delete</button> <button>Update</button></li>
{% endfor %}
</ul>
{% else %}
<h3>Please go to the admin and add a Name under 'MYAPP'</h3>
{% endif %}
<h3>Add a Name</h3>
<form id="name_form" method="post" action="/">
{% csrf_token %}
{% for field in form.visible_fields %}
{{ field.errors }}
{{ field.help_text }}
{{ field }}
{% endfor %}
<input type="submit" name="submit" value="Create">
</form>
</body>
</html>
अगले तरीके से अगली बार view.py को अपडेट करें:
from django.shortcuts import render, redirect
from myapp.models import Name
from myapp.forms import NameForm
# Create your views here.
def index(request):
names_from_db = Name.objects.all()
form = NameForm()
context_dict = {'names_from_context': names_from_db, 'form': form}
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
form.save(commit=True)
return render(request, 'index.html', context_dict)
else:
print(form.errors)
return render(request, 'index.html', context_dict)
अपने सर्वर को पुनरारंभ करें और अब आपके पास पूर्ण बनाने के लिए सी के साथ ऐप का एक कार्यशील संस्करण होना चाहिए।
TODO अपडेट जोड़ें और हटाएं