2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Like + Follow + Collect = विद्वान्
पूर्वलेखे तस्य विषये चर्चां कृतवान् Django
संचालनं कुर्वन्तिMySQL
विधिः कथं मॉडल् निर्मातव्यं तथा च दत्तांशकोशं कथं योजयितुं, विलोपयितुं, परिवर्तनं कर्तुं, प्रश्नं कर्तुं च व्याख्यायते । परन्तु भवद्भिः प्रत्येकं दत्तांशं परिवर्तयितुं कोड् लिखितव्यं भवति, यत् किञ्चित् कष्टप्रदम् अस्ति ।
किं सरलतरः उपायः अस्ति ?
केचन, केचन, २.Django
वस्तुतः, एतत् पृष्ठभागेन सह आगच्छति, यत् चित्रात्मकं अन्तरफलकं भवति, तस्मिन् च भवन्तः विविधानि दत्तांशसामग्रीणि सहजतया संचालितुं शक्नुवन्ति ।
तदनन्तरं, अस्य अन्तःनिर्मितस्य पृष्ठभागस्य उपयोगः कथं करणीयः इति विषये वदामः ।
वस्तुतः सृजति Django
परियोजनायाः समये वयं अस्माकं कृते पृष्ठभूमितः मार्गनिर्देशनसङ्केतं पूर्वमेव विन्यस्तं कृतवन्तः ।
यदि भवान् मम पूर्वलेखस्य पदे पदे अनुसरणं करोति तर्हि पृष्ठभूमिमार्गनिर्देशः विलोपितः भवितुम् अर्हति । तस्य महत्त्वं नास्ति, केवलं तत् कल्पयतु।
परियोजनां उद्घाटयन्तु urls.py
सञ्चिका, प्राप्ताurlpatterns
एतत् चरं पृष्ठभूमिमार्गनिर्धारणं पूरयितुं उपयुज्यते ।
```पायथन्
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
भवतः ईमेल-सङ्केतं प्रविष्टस्य अनन्तरं भवतः गुप्तशब्दं द्विवारं प्रविष्टुं प्रार्थयिष्यते ।
- Password:
- Password (again):
अहम् अत्र यत् गुप्तशब्दं प्रविशति तत् अस्ति 12345678
, इदं स्मार्टतया अतिसामान्यगुप्तशब्दानां स्मरणं करोति, परन्तु अहं y इति टङ्कयित्वा एतादृशैः सरलगुप्तशब्दैः सह लप्यते ।
- This password is too common.
- This password is entirely numeric.
- Bypass password validation and create user anyway? [y/N]: y
- Superuser created successfully.
पश्यतु Superuser created successfully.
अस्य वाक्यस्य अर्थः अस्ति यत् लेखा सफलतया निर्मितम् अस्ति।
अधुना ब्राउजर् मध्ये उद्घाटयन्तु http://127.0.0.1:8000/admin/
, खातानिवेशः admin
, गुप्तशब्दनिवेशः 12345678
भवान् सफलतया प्रवेशं कर्तुं शक्नोति।
वयं पूर्वं दत्तांशकोशस्य संचालनार्थं कोडस्य उपयोगं कृतवन्तः, यत् तावत् सुलभं नास्ति ।
Django
अस्माकं कृते अनुप्रयोगप्रतिरूपं पृष्ठभूमितः बद्धुं मार्गं प्रदाति, येन वयं प्रत्यक्षतया पृष्ठभूमि-अन्तरफलके दत्तांशं संचालितुं शक्नुमः ।
पूर्वलेखात् निर्मितम् account
उदाहरणरूपेण प्रयोजयन्तु।
अस्ति account
अनुप्रयोगे प्राप्तम्admin.py
file, निम्नलिखित कोड लिखें।
```पायथन्
django.contrib इत्यस्मात् account.models import User इत्यस्मात् admin आयातयन्तु
class UserAdmin(admin.ModelAdmin): # प्रदर्शनीया सामग्री list_display = ['उपयोक्तृनाम', 'ईमेल']
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/
तथा च प्रवेशं कुर्वन्तु, भवन्तः अधुना एव बद्धं मॉडलं द्रष्टुं शक्नुवन्ति ।
अस्य सारणीयाः विषये सूचनां दत्तांशकोशे द्रष्टुं "User Table s" नुदन्तु ।
अस्मिन् सारणीयां नूतनानि दत्तांशं योजयितुं भवान् "Add" इति बटन् नुदतु ।
निर्दिष्टदत्तांशं परिवर्तयितुं विलोपयितुं च शक्नुवन्ति ।
पृष्ठभूमिपृष्ठे परिवर्तितं दत्तांशं प्रत्यक्षतया दत्तांशकोशे दत्तांशं प्रभावितं करिष्यति ।
तथैव स्थापय blog
अनुप्रयोगप्रतिरूपं पृष्ठभागेन सह सम्बद्धम् अस्ति । अत्र शल्यक्रिया पूर्ववत् एव अस्ति अतः पुनः न व्याख्यास्यामि ।
```पायथन्
from django.contrib import admin from blog.models आयात लेखः
class ArticleAdmin(admin.ModelAdmin): # प्रदर्शनीया सामग्री list_display = ['id', 'title']
admin.site.register(लेख, लेखप्रशासक) ```
लेखं निर्माय अवलोकयामः।
"Article Information Tables" इत्यस्य पार्श्वे Add इति बटन् नुत्वा निम्नलिखितसामग्री पूरयन्तु ।
क्लिक् कुर्वन्तु SAVE
बटनं नुदनस्य अनन्तरं, दत्तांशः दत्तांशकोशे लिखितः भवति, अधुना एव लिखितं दत्तांशं द्रष्टुं "Article Information Tables" इत्यस्य सूचीपृष्ठं प्रति प्रत्यागच्छन्तु ।
यदि भवान् सम्पूर्णस्य परियोजनायाः विषयवस्तुविषये निश्चितः नास्ति तर्हि मया संकलितं तत् पश्चाद् अवलोकयितुं शक्नोति"ड्जाङ्गो स्तम्भ" ।。
पूर्वकार्यक्रमेषु सावधानाः श्रमिकाः काश्चन समस्याः अवलोकितवन्तः स्यात्, यथा अन्तरफलकं आङ्ग्लभाषायां किमर्थम्? सारणीनामस्य अनन्तरं "स" किमर्थम् ?लेखस्य निर्माणकाले वैकल्पिकं User क्षेत्रं किमर्थं उपयोक्तृनाम न, अपितु...User object(1)
?
तदनन्तरं वयं एतासां समस्यानां एकैकशः समाधानं करिष्यामः ।
परियोजनां उद्घाटयन्तु settings.py
सञ्चिका, प्राप्ताLANGUAGE_CODE
, तस्य मूल्यं सेट् कुर्वन्तु'zh-hans'
.ततः च अन्वेष्टुम्TIME_ZONE
इति सेट् कुर्वन्तुAsia/Shanghai
。
```पायथन्
LANGUAGE_CODE = 'झ-हंस'।
TIME_ZONE = 'एशिया/शंघाई' ```
परन्तु अस्मिन् समये ACCOUNT
तथाBLOG
अद्यापि आङ्ग्लभाषायां, अत्रDjango
प्रत्यक्षतया चीनीभाषायां अनुवादं कर्तुं न शक्यते ।
विन्यासः प्रत्येकस्य अनुप्रयोगस्य स्वस्य अस्ति apps.py
file, throughverbose_name
स्तम्भनाम अनुकूलनार्थं चरम् ।
इत्यनेन account
उदाहरणरूपेण प्रयोजयन्तु।
```पायथन्
django.apps इत्यस्मात् AppConfig आयातयन्तु
class AccountConfig (AppConfig): पूर्वनिर्धारितऑटोfield = 'django.db.models.BigAutoField' name = 'खाता' verbose_name = 'उपयोक्ता प्रबन्धन' ```
blog
तथैव भवति ।
```पायथन्
django.apps इत्यस्मात् AppConfig आयातयन्तु
class BlogConfig (AppConfig): पूर्वनिर्धारितऑटोfield = 'django.db.models.BigAutoField' name = 'ब्लॉग' verbose_name = 'लेख प्रबन्धन' ```
अस्मिन् समये पृष्ठं ताजगीकृत्य भवन्तः पश्यन्ति यत् स्तम्भनाम परिवर्तितम् अस्ति ।
सारणीनामस्य अनन्तरं "स" अस्ति Django
तया सह आगच्छति ।एतत् "s" विलोपयितुं भवद्भिः सारणीयाः उपनाम अपि विन्यस्तं कर्तव्यम् ।
प्रत्येकस्य अनुप्रयोगस्य आदर्शसञ्चिकायां (models.py
) विन्यस्तम् Meta
सूचनात्मकverbose_name_plural
。
इत्यनेन account
उदाहरणरूपेण प्रयोजयन्तु।
```पायथन्
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= सत्यम्, रिक्तम्=सत्यम्) २.
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
```
पृष्ठं ताजगीकृत्य भवन्तः पश्यन्ति यत् "User Table" इत्यस्य अनन्तरं "s" गता अस्ति ।
blog
स एव कारणम् ।
यदा वयं लेखं योजयामः तदा लेखस्य लेखकं प्रविष्ट्वा चयनं कर्तव्यं The author of the article table is associated with the user table.
लेखकं योजयन्ते सति पृष्ठं प्रत्यक्षतया "User object" इति नाम प्रदर्शयति यदि उपयोक्तृणां संख्या वर्धते तर्हि वयं को कोऽस्ति इति वक्तुं न शक्नुमः ।
अस्माभिः उपयोक्तृनाम प्रदर्शयितव्यम् ।
प्रथमं परिवर्तनं कुर्मः blog
प्रदर्शयितुं क्षेत्राणि।
```पायथन्
from django.contrib import admin from blog.models आयात लेखः
def get_author (obj): obj.उपयोगकर्ता.उपयोक्तृनाम वापस करें
class ArticleAdmin(admin.ModelAdmin): # प्रदर्शनीया सामग्री # भवान् अत्र get इत्यस्य उपयोगं कर्तुं शक्नोति लेखकस्य स्थाने उपयोक्तृनाम भवति । अत्र एकैकं उद्धरणं कोष्ठकं वा योजयितुं आवश्यकता नास्ति । # django सूचीं उपयुज्यते प्रदर्शयन्ते सति पूर्वनिर्धारितरूपेण विधिं प्रति एकः पैरामीटर् पारितः भविष्यति । सूचीप्रदर्शनम् = ['id', प्राप्तम्लेखकः, 'शीर्षक', 'सामग्री'] ।
प्राप्नोतुलेखक.लघुdescription = 'लेखक' ।
admin.site.register(लेख, लेखप्रशासक) ```
foreign कीलम् get_author मेथड् इत्यनेन सह संयोजयन्तु username
क्षेत्राणि प्रदर्शितानि भवन्ति।
अस्मिन् क्षणे वयं द्रष्टुं शक्नुमः यत् अस्य लेखस्य लेखकः कोऽस्ति । परन्तु अद्यापि सम्पादनपृष्ठे उपयोक्तृनाम प्रदर्शयितुं आवश्यकम् ।
अस्मिन् समये परिवर्तनस्य आवश्यकता अस्ति User
केवलं मॉडल् एव करिष्यन्ति।
```पायथन्
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= सत्यम्, रिक्तम्=सत्यम्) २.
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
-
- # 返回用户名
- def __str__(self):
- return self.username
```
अस्ति account/models.py
अन्ते योजयतु__str__
विधिः, प्रत्यागमनम्username
。
अस्मिन् समये लेखसूचनायाः सम्पादनपृष्ठे उपयोक्तृनाम द्रष्टुं शक्यते ।
लेखप्रबन्धनपृष्ठे यदि भवान् लेखं सम्पादयितुम् इच्छति तर्हि सम्पादनपृष्ठं प्रति कूर्दितुं केवलं "ID" क्षेत्रे क्लिक् कर्तुं शक्नोति ।यदि भवान् अन्यक्षेत्रेषु क्लिक् कृत्वा सम्पादनपृष्ठं प्रति कूर्दितुं इच्छति तर्हि भवान् तत् स्वहस्तेन विन्यस्तुं आवश्यकः ।blog/admin.py
यथा, अहं सम्पादनपृष्ठं प्रति कूर्दितुं "TITLE" नुदतुम् इच्छामि ।
```पायथन्
class ArticleAdmin(admin.ModelAdmin): # प्रदर्शयितुं सामग्रीसूचीप्रदर्शनम् = ['id', प्राप्तम्लेखक, 'शीर्षक', 'सामग्री'] # कूदने योग्य क्षेत्र सूचीप्रदर्शनlinks = ['id', 'title'] # किञ्चित् कोडं परित्यजन्तु```
अहम् अत्र अस्मि ArticleAdmin
योजितःlist_display_links = ['id', 'title']
, क्लिक् इति सूचयति id
तथाtitle
सम्पादनपृष्ठं प्रति कूर्दितुं शक्नुवन्ति ।
सामग्रीं सम्पादयन्ते सति वयं न इच्छामः यत् केचन क्षेत्राणि परिवर्तनीयानि भवेयुः । यथा, ब्लॉग् ID परिवर्तनं कर्तुं न शक्यते।
अनुमतम् blog/admin.py
योजयतुreadonly_fields
परिवर्तनं कर्तुं न शक्यन्ते इति क्षेत्राणि निर्दिशति ।
```पायथन्
class ArticleAdmin (admin.ModelAdmin): # केवलं पठनीय विशेषता readonly_fields = ['id'] # किञ्चित् कोडं त्यक्त्वा````
अस्मिन् समये सम्पादनकाले id क्षेत्रस्य मूल्यं परिवर्तयितुं न शक्यते ।
एतत् एव अस्य लेखस्य कृते । अग्रिमे लेखे अहं प्रथमपृष्ठे दत्तांशकोशे सूचनां कथं लोड् कर्तव्यमिति परिचयं करिष्यामि ।
Like + Follow + Collect = विद्वान्