प्रौद्योगिकी साझेदारी

"Django" स्वस्य पृष्ठभागेन सह आगच्छति

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


विषयः स्मार्टब्लू

अस्य लेखस्य परिचयः

Like + Follow + Collect = विद्वान्

00.png

पूर्वलेखे तस्य विषये चर्चां कृतवान् Django संचालनं कुर्वन्तिMySQL विधिः कथं मॉडल् निर्मातव्यं तथा च दत्तांशकोशं कथं योजयितुं, विलोपयितुं, परिवर्तनं कर्तुं, प्रश्नं कर्तुं च व्याख्यायते । परन्तु भवद्भिः प्रत्येकं दत्तांशं परिवर्तयितुं कोड् लिखितव्यं भवति, यत् किञ्चित् कष्टप्रदम् अस्ति ।

किं सरलतरः उपायः अस्ति ?

केचन, केचन, २.Django वस्तुतः, एतत् पृष्ठभागेन सह आगच्छति, यत् चित्रात्मकं अन्तरफलकं भवति, तस्मिन् च भवन्तः विविधानि दत्तांशसामग्रीणि सहजतया संचालितुं शक्नुवन्ति ।

तदनन्तरं, अस्य अन्तःनिर्मितस्य पृष्ठभागस्य उपयोगः कथं करणीयः इति विषये वदामः ।

पृष्ठभूमिमार्गसङ्केतं विन्यस्यताम्

वस्तुतः सृजति Django परियोजनायाः समये वयं अस्माकं कृते पृष्ठभूमितः मार्गनिर्देशनसङ्केतं पूर्वमेव विन्यस्तं कृतवन्तः ।

यदि भवान् मम पूर्वलेखस्य पदे पदे अनुसरणं करोति तर्हि पृष्ठभूमिमार्गनिर्देशः विलोपितः भवितुम् अर्हति । तस्य महत्त्वं नास्ति, केवलं तत् कल्पयतु।

परियोजनां उद्घाटयन्तु urls.py सञ्चिका, प्राप्ताurlpatterns एतत् चरं पृष्ठभूमिमार्गनिर्धारणं पूरयितुं उपयुज्यते ।

```पायथन्

urls.py परियोजनायाः मार्गनिर्देशनसञ्चिका

django.urls तः blog.views तः आयातमार्गः blogIndex आयातितः

urlpatterns = [ # अन्ये मार्गाः लोपिताः # निम्नलिखितवाक्यं पृष्ठभूमिं विन्यस्तुं मार्गमार्गः ('admin/', admin.site.urls) ] ```

विन्यासः समाप्तः जातः ततः परं परियोजनां आरभ्य ब्राउजर् मध्ये उद्घाटयन्तु http://127.0.0.1:8000/admin/ पृष्ठभूमितः प्रवेशपृष्ठं द्रष्टुं शक्नुवन्ति ।

०१.पङ्

प्रशासकलेखं रचयन्तु

यदि प्रवेशपृष्ठं अस्ति तर्हि प्रवेशार्थं भवतः तत्सम्बद्धं खातं भवितुमर्हति ।

अतः प्रथमं सुपर मैनेजमेण्ट् खातं निर्मातव्यम् ।

टर्मिनल् उद्घाट्य, परियोजनानिर्देशिकां प्रविश्य, सुपर प्रबन्धन खातं निर्मातुं निम्नलिखितम् आदेशं प्रविशतु ।

python manage.py createsuperuser

ततः टर्मिनल् भवद्भ्यः एतां सूचनापङ्क्तिं प्रत्यागमिष्यति, यत् भवन्तं सुपर प्रबन्धन उपयोक्तृनाम (खाता) प्रविष्टुं पृच्छति ।

Username (leave blank to use 'xxx'): admin

'xxx' अत्र मम सङ्गणकस्य नाम अस्ति, भवन्तः कोलन इत्यस्य अनन्तरं super management account प्रविष्टुं शक्नुवन्ति ।अहम् अत्र यत् प्रविष्टवान् तत् अस्तिadmin

भवतः उपयोक्तृनाम प्रविष्टस्य अनन्तरं भवतः ईमेल-सङ्केतं प्रविष्टुं निरन्तरं प्रार्थयिष्यति ।

Email address: 123@qq.com

भवतः ईमेल-सङ्केतं प्रविष्टस्य अनन्तरं भवतः गुप्तशब्दं द्विवारं प्रविष्टुं प्रार्थयिष्यते ।

  1. Password:
  2. Password (again):

अहम् अत्र यत् गुप्तशब्दं प्रविशति तत् अस्ति 12345678, इदं स्मार्टतया अतिसामान्यगुप्तशब्दानां स्मरणं करोति, परन्तु अहं y इति टङ्कयित्वा एतादृशैः सरलगुप्तशब्दैः सह लप्यते ।

  1. This password is too common.
  2. This password is entirely numeric.
  3. Bypass password validation and create user anyway? [y/N]: y
  4. Superuser created successfully.

पश्यतु Superuser created successfully. अस्य वाक्यस्य अर्थः अस्ति यत् लेखा सफलतया निर्मितम् अस्ति।

अधुना ब्राउजर् मध्ये उद्घाटयन्तु http://127.0.0.1:8000/admin/, खातानिवेशः admin, गुप्तशब्दनिवेशः 12345678 भवान् सफलतया प्रवेशं कर्तुं शक्नोति।

०२.पङ्

आदर्श संघ पृष्ठभूमि

वयं पूर्वं दत्तांशकोशस्य संचालनार्थं कोडस्य उपयोगं कृतवन्तः, यत् तावत् सुलभं नास्ति ।

Django अस्माकं कृते अनुप्रयोगप्रतिरूपं पृष्ठभूमितः बद्धुं मार्गं प्रदाति, येन वयं प्रत्यक्षतया पृष्ठभूमि-अन्तरफलके दत्तांशं संचालितुं शक्नुमः ।

पूर्वलेखात् निर्मितम् account उदाहरणरूपेण प्रयोजयन्तु।

अस्ति account अनुप्रयोगे प्राप्तम्admin.py file, निम्नलिखित कोड लिखें।

```पायथन्

खाता/प्रशासक.py

django.contrib इत्यस्मात् account.models import User इत्यस्मात् admin आयातयन्तु

class UserAdmin(admin.ModelAdmin): # प्रदर्शनीया सामग्री list_display = ['उपयोक्तृनाम', 'ईमेल']

User model इत्येतत् UserAdmin इत्यत्र बाइण्ड् कुर्वन्तु

admin.site.register (उपयोक्ता, उपयोक्ताप्रशासक) ```

प्रथमं अत्र परिचयः करणीयः admin तथाUser, यतः वयं इच्छामः account अनुप्रयोगप्रतिरूपं पृष्ठभागेन सह सम्बद्धम् अस्ति ।

नामकं सञ्चिकां रचयन्तु UserAdmin कक्षा, तस्मिन् लिखतुlist_display = ['username', 'email'] , पृष्ठभूमिपृष्ठे प्रदर्शयितुं अर्थःusername तथाemail एतौ क्षेत्रौ ।

अन्ततः admin.site.register(User, UserAdmin) इत्यर्थःUser मॉडल् बैकएण्ड् च एकत्र बद्धौ स्तः ।

परियोजनां चालयित्वा उद्घाटयन्तु http://127.0.0.1:8000/admin/ तथा च प्रवेशं कुर्वन्तु, भवन्तः अधुना एव बद्धं मॉडलं द्रष्टुं शक्नुवन्ति ।

03.png

अस्य सारणीयाः विषये सूचनां दत्तांशकोशे द्रष्टुं "User Table s" नुदन्तु ।

04.png

अस्मिन् सारणीयां नूतनानि दत्तांशं योजयितुं भवान् "Add" इति बटन् नुदतु ।

05.png

निर्दिष्टदत्तांशं परिवर्तयितुं विलोपयितुं च शक्नुवन्ति ।

06.png

पृष्ठभूमिपृष्ठे परिवर्तितं दत्तांशं प्रत्यक्षतया दत्तांशकोशे दत्तांशं प्रभावितं करिष्यति ।

तथैव स्थापय blog अनुप्रयोगप्रतिरूपं पृष्ठभागेन सह सम्बद्धम् अस्ति । अत्र शल्यक्रिया पूर्ववत् एव अस्ति अतः पुनः न व्याख्यास्यामि ।

```पायथन्

blog/admin.py

from django.contrib import admin from blog.models आयात लेखः

अत्र स्वस्य मॉडल् पञ्जीकरणं कुर्वन्तु।

class ArticleAdmin(admin.ModelAdmin): # प्रदर्शनीया सामग्री list_display = ['id', 'title']

User model इत्येतत् UserAdmin इत्यत्र बाइण्ड् कुर्वन्तु

admin.site.register(लेख, लेखप्रशासक) ```

07.png

लेखं निर्माय अवलोकयामः।

"Article Information Tables" इत्यस्य पार्श्वे Add इति बटन् नुत्वा निम्नलिखितसामग्री पूरयन्तु ।

08.png

क्लिक् कुर्वन्तु SAVE बटनं नुदनस्य अनन्तरं, दत्तांशः दत्तांशकोशे लिखितः भवति, अधुना एव लिखितं दत्तांशं द्रष्टुं "Article Information Tables" इत्यस्य सूचीपृष्ठं प्रति प्रत्यागच्छन्तु ।

09.png

यदि भवान् सम्पूर्णस्य परियोजनायाः विषयवस्तुविषये निश्चितः नास्ति तर्हि मया संकलितं तत् पश्चाद् अवलोकयितुं शक्नोति"ड्जाङ्गो स्तम्भ" ।

पृष्ठभागस्य मूलभूतविन्यासः

पूर्वकार्यक्रमेषु सावधानाः श्रमिकाः काश्चन समस्याः अवलोकितवन्तः स्यात्, यथा अन्तरफलकं आङ्ग्लभाषायां किमर्थम्? सारणीनामस्य अनन्तरं "स" किमर्थम् ?लेखस्य निर्माणकाले वैकल्पिकं User क्षेत्रं किमर्थं उपयोक्तृनाम न, अपितु...User object(1)

तदनन्तरं वयं एतासां समस्यानां एकैकशः समाधानं करिष्यामः ।

समयक्षेत्रं भाषां च सेट् कुर्वन्तु

परियोजनां उद्घाटयन्तु settings.py सञ्चिका, प्राप्ताLANGUAGE_CODE , तस्य मूल्यं सेट् कुर्वन्तु'zh-hans' .ततः च अन्वेष्टुम्TIME_ZONE इति सेट् कुर्वन्तुAsia/Shanghai

```पायथन्

सेटिंग्स्.py

भाषा

LANGUAGE_CODE = 'झ-हंस'।

समयक्षेत्र

TIME_ZONE = 'एशिया/शंघाई' ```

१०.पङ्

स्तम्भनाम चीनीभाषायां परिवर्तयन्तु

परन्तु अस्मिन् समये ACCOUNT तथाBLOG अद्यापि आङ्ग्लभाषायां, अत्रDjango प्रत्यक्षतया चीनीभाषायां अनुवादं कर्तुं न शक्यते ।

११.पङ्

विन्यासः प्रत्येकस्य अनुप्रयोगस्य स्वस्य अस्ति apps.py file, throughverbose_name स्तम्भनाम अनुकूलनार्थं चरम् ।

इत्यनेन account उदाहरणरूपेण प्रयोजयन्तु।

```पायथन्

खाता/अनुप्रयोगाः.py

django.apps इत्यस्मात् AppConfig आयातयन्तु

class AccountConfig (AppConfig): पूर्वनिर्धारितऑटोfield = 'django.db.models.BigAutoField' name = 'खाता' verbose_name = 'उपयोक्ता प्रबन्धन' ```

blog तथैव भवति ।

```पायथन्

blog/apps.py

django.apps इत्यस्मात् AppConfig आयातयन्तु

class BlogConfig (AppConfig): पूर्वनिर्धारितऑटोfield = 'django.db.models.BigAutoField' name = 'ब्लॉग' verbose_name = 'लेख प्रबन्धन' ```

अस्मिन् समये पृष्ठं ताजगीकृत्य भवन्तः पश्यन्ति यत् स्तम्भनाम परिवर्तितम् अस्ति ।

१२.पङ्

बहुवचनरूपं लोपयति

सारणीनामस्य अनन्तरं "स" अस्ति Django तया सह आगच्छति ।एतत् "s" विलोपयितुं भवद्भिः सारणीयाः उपनाम अपि विन्यस्तं कर्तव्यम् ।

प्रत्येकस्य अनुप्रयोगस्य आदर्शसञ्चिकायां (models.py) विन्यस्तम् Meta सूचनात्मकverbose_name_plural

इत्यनेन account उदाहरणरूपेण प्रयोजयन्तु।

```पायथन्

खाता/माडल.py

django.db आयातप्रतिमानात्

उपयोक्तृसारणीं रचयन्तु

class User (models.Model): id = models.AutoField (प्राथमिकkey=True) # username = models.CharField ('उपयोक्तृनाम', अधिकतमlength=30, null=सत्य, blank=सत्य, अद्वितीय=सत्य) # गुप्तशब्दगुप्तशब्द = models.CharField('गुप्तशब्द', max_length=30) # ईमेल ईमेल = models.EmailField('ईमेल', अद्वितीय=सत्य, null= सत्यम्, रिक्तम्=सत्यम्) २.

  1. class Meta:
  2. # 自定义表名
  3. db_table = 'user'
  4. # 表别名
  5. verbose_name = '用户表'
  6. verbose_name_plural = '用户表'

```

पृष्ठं ताजगीकृत्य भवन्तः पश्यन्ति यत् "User Table" इत्यस्य अनन्तरं "s" गता अस्ति ।

१३.पङ्

blog स एव कारणम् ।

विदेशीय कीलक्षेत्राणि दर्शयतु

यदा वयं लेखं योजयामः तदा लेखस्य लेखकं प्रविष्ट्वा चयनं कर्तव्यं The author of the article table is associated with the user table.

लेखकं योजयन्ते सति पृष्ठं प्रत्यक्षतया "User object" इति नाम प्रदर्शयति यदि उपयोक्तृणां संख्या वर्धते तर्हि वयं को कोऽस्ति इति वक्तुं न शक्नुमः ।

१४.पङ्

अस्माभिः उपयोक्तृनाम प्रदर्शयितव्यम् ।

प्रथमं परिवर्तनं कुर्मः blog प्रदर्शयितुं क्षेत्राणि।

```पायथन्

blog/admin.py

from django.contrib import admin from blog.models आयात लेखः

लेखक प्राप्त करें

एतत् obj वस्तु Article instances प्राप्तुं उपयुज्यते

def get_author (obj): obj.उपयोगकर्ता.उपयोक्तृनाम वापस करें

अत्र स्वस्य मॉडल् पञ्जीकरणं कुर्वन्तु।

class ArticleAdmin(admin.ModelAdmin): # प्रदर्शनीया सामग्री # भवान् अत्र get इत्यस्य उपयोगं कर्तुं शक्नोति लेखकस्य स्थाने उपयोक्तृनाम भवति । अत्र एकैकं उद्धरणं कोष्ठकं वा योजयितुं आवश्यकता नास्ति । # django सूचीं उपयुज्यते प्रदर्शयन्ते सति पूर्वनिर्धारितरूपेण विधिं प्रति एकः पैरामीटर् पारितः भविष्यति । सूचीप्रदर्शनम् = ['id', प्राप्तम्लेखकः, 'शीर्षक', 'सामग्री'] ।

प्राप्नोतुलेखक.लघुdescription = 'लेखक' ।

User model इत्येतत् UserAdmin इत्यत्र बाइण्ड् कुर्वन्तु

admin.site.register(लेख, लेखप्रशासक) ```

foreign कीलम् get_author मेथड् इत्यनेन सह संयोजयन्तु username क्षेत्राणि प्रदर्शितानि भवन्ति।

१५.पङ्

अस्मिन् क्षणे वयं द्रष्टुं शक्नुमः यत् अस्य लेखस्य लेखकः कोऽस्ति । परन्तु अद्यापि सम्पादनपृष्ठे उपयोक्तृनाम प्रदर्शयितुं आवश्यकम् ।

अस्मिन् समये परिवर्तनस्य आवश्यकता अस्ति User केवलं मॉडल् एव करिष्यन्ति।

```पायथन्

खाता/माडल.py

django.db आयातप्रतिमानात्

उपयोक्तृसारणीं रचयन्तु

class User (models.Model): id = models.AutoField (प्राथमिकkey=True) # username = models.CharField ('उपयोक्तृनाम', अधिकतमlength=30, null=सत्य, blank=सत्य, अद्वितीय=सत्य) # गुप्तशब्दगुप्तशब्द = models.CharField('गुप्तशब्द', max_length=30) # ईमेल ईमेल = models.EmailField('ईमेल', अद्वितीय=सत्य, null= सत्यम्, रिक्तम्=सत्यम्) २.

  1. class Meta:
  2. # 自定义表名
  3. db_table = 'user'
  4. # 表别名
  5. verbose_name = '用户表'
  6. verbose_name_plural = '用户表'
  7. # 返回用户名
  8. def __str__(self):
  9. return self.username

```

अस्ति account/models.py अन्ते योजयतु__str__ विधिः, प्रत्यागमनम्username

अस्मिन् समये लेखसूचनायाः सम्पादनपृष्ठे उपयोक्तृनाम द्रष्टुं शक्यते ।

16.png

कस्टम सम्पादन योग्य कूद लिङ्क

लेखप्रबन्धनपृष्ठे यदि भवान् लेखं सम्पादयितुम् इच्छति तर्हि सम्पादनपृष्ठं प्रति कूर्दितुं केवलं "ID" क्षेत्रे क्लिक् कर्तुं शक्नोति ।यदि भवान् अन्यक्षेत्रेषु क्लिक् कृत्वा सम्पादनपृष्ठं प्रति कूर्दितुं इच्छति तर्हि भवान् तत् स्वहस्तेन विन्यस्तुं आवश्यकः ।blog/admin.py यथा, अहं सम्पादनपृष्ठं प्रति कूर्दितुं "TITLE" नुदतुम् इच्छामि ।

17.png

```पायथन्

blog/admin.py

किञ्चित् कोडं परित्यजन्तु

class ArticleAdmin(admin.ModelAdmin): # प्रदर्शयितुं सामग्रीसूचीप्रदर्शनम् = ['id', प्राप्तम्लेखक, 'शीर्षक', 'सामग्री'] # कूदने योग्य क्षेत्र सूचीप्रदर्शनlinks = ['id', 'title'] # किञ्चित् कोडं परित्यजन्तु```

अहम् अत्र अस्मि ArticleAdmin योजितःlist_display_links = ['id', 'title'], क्लिक् इति सूचयति id तथाtitle सम्पादनपृष्ठं प्रति कूर्दितुं शक्नुवन्ति ।

पठनीय एव विशेषणम्

सामग्रीं सम्पादयन्ते सति वयं न इच्छामः यत् केचन क्षेत्राणि परिवर्तनीयानि भवेयुः । यथा, ब्लॉग् ID परिवर्तनं कर्तुं न शक्यते।

अनुमतम् blog/admin.py योजयतुreadonly_fields परिवर्तनं कर्तुं न शक्यन्ते इति क्षेत्राणि निर्दिशति ।

```पायथन्

blog/admin.py

किञ्चित् कोडं परित्यजन्तु

class ArticleAdmin (admin.ModelAdmin): # केवलं पठनीय विशेषता readonly_fields = ['id'] # किञ्चित् कोडं त्यक्त्वा````

अस्मिन् समये सम्पादनकाले id क्षेत्रस्य मूल्यं परिवर्तयितुं न शक्यते ।

18.पङ्


एतत् एव अस्य लेखस्य कृते । अग्रिमे लेखे अहं प्रथमपृष्ठे दत्तांशकोशे सूचनां कथं लोड् कर्तव्यमिति परिचयं करिष्यामि ।

IMG_8982.GIF

Like + Follow + Collect = विद्वान्