اگر مجموعه توسعه ما Django را دنبال كرده باشيد ، با موفقيت يك برنامه Django ايجاد كرده ايد كه به كاربران داراي امتيازات ادمين اجازه مي دهد تا از طريق داشبورد UI ادمين Django ، نظرات و پست هاي خود را اضافه كنند. همچنين با اهرم كردن MySQL و مدل هاي راه حل نگاشت مربوط به آبجكت، تداوم داده ها را تنظيم كرده ايد.
در اين آموزش ، نماهاي Django را ايجاد خواهيم كرد كه برنامه وب ما را قادر مي سازد به درستي درخواست هاي وب را انجام داده و پاسخ هاي وب مورد نياز را برگرداند. همانطور كه در مطالب Django تعريف شده است ، يك پاسخ وب مي تواند محتواي HTML يك صفحه وب ، يك تغيير مسير يا يك خطاي HTTP باشد (به عنوان مثال 404). كد توابع view تا زماني كه در مسير Python شما باشد از لحاظ فني مي تواند در هر نقطه از پروژه شما قرار بگيرد. با اين حال ، برخي از كنوانسيون هاي معروف براي نامگذاري و قرار دادن فايل وجود دارند كه اين توابع view در آنها موجودند ، و ما اين روشها را دنبال خواهيم كرد.
پس از اتمام مراحل اين آموزش ، وبلاگ Django شما يك پست جديد را به آدرس اينترنتي IP-يا-domain / post شما وارد مي كند.
پيش نيازها
اين آموزش بخشي از مجموعه توسعه Django است و ادامه آن سري ميباشد.
اگر اين مجموعه را دنبال نكرده ايد ، فرضيات زير را مطرح مي كنيم:
• بايد نسخه 3 يا بالاتر Django را نصب كرده باشيد.
• برنامه Django خود را به يك پايگاه داده وصل كرده ايد. ما از MySQL استفاده مي كنيم ، و مي توانيد با دنبال كردن قسمت دوم مقاله Django ،تحت عنوان “نحوه ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي” ، به اين اتصال دست يابيد.
• شما با يك سيستم عامل مستقر در يونيكس كار مي كنيد ، ترجيحاً با سرور مجازي ابري اوبونتو 20.04 زيرا اين سيستمي است كه ما روي آن آزمايش كرده ايم. اگر مي خواهيد Django را در محيطي مشابه تنظيم كنيد ، لطفاً به آموزش “نحوه نصب Django و ايجاد يك محيط توسعه در اوبونتو 20.04” مراجعه كنيد.
• رابط كاربري ادمين Django خود را تنظيم كرده ايد. شما مي توانيد اين كار را با پيروي از آموزش ادمين Django انجام دهيد.
از آنجا كه اين راهنما در وهله اول با نماهاي Django سروكار دارد ، حتي اگر ستاپ كمي متفاوتي داريد، مي توانيد آن را دنبال كنيد.
مرحله 1 – ايجاد توابع view
در درون ترمينال خود ، ابتدا بايد وارد دايركتوري مربوطه شويد و محيط مجازي Python خود را فعال كنيد. اگر همراه اين مجموعه بوده باشيد ، مي توانيد دستورات زير را وارد كنيد. مهم است كه هميشه در هنگام تهيه برنامه خود از يك محيط برنامه نويسي پايتون استفاده كنيد تا اطمينان حاصل شود كه كد شما درج شده است و شما با ستاپ درست كار مي كنيد.
⦁ $ cd ~/my_blog_app

⦁ $ . env/bin/activate
اكنون كه محيط مجازي شما فعال شده است ، بياييد به ديركتوري blogsite  برويم و در آنجا يك فايل پايتون را باز خواهيم كرد و اولين تابع view خود را ايجاد مي كنيم.
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/blogsite

براي مشاهده ويرايش ، با استفاده از nano يا ويرايشگر متن مورد نظر خود ، فايل views.py را باز كنيد.
⦁ (env) Sammy@ubuntu:$ nano views.py

با باز كردن فايل ، بايد كدي مشابه با اين را پر كنيد:
/my_blog_app/blog/blogsite/views.py
from django.shortcuts import render

# Create your views here.

عبارت ورود را كه تابع render () را از كتابخانه django.shortcuts وارد مي كند، نگه خواهيم داشت. تابع  render()به ما امكان مي دهد تا يك الگو و يك متن را با هم تركيب كنيم تا بتوانيم آبجكت HttpResponse مناسب را برگردانيم. اين را به خاطر بسپاريد زيرا با هر نمايي كه مي نويسيم ، مسئوليت نمونه سازي ، پر كردن و بازگرداندن HttpResponse را بر عهده داريم.
در مرحله اول ما اولين نماي خود را اضافه خواهيم كرد كه از كاربران با صفحه ايندكس استقبال مي كند. تابع HttpResponse () را از كتابخانه http  در Django وارد ميكنيم. با استفاده از آن تابع ، متن را ارسال مي كنيم تا هنگام درخواست صفحه وب نمايش داده شود.
~/my_blog_app/blog/blogsite/views.py
from django.shortcuts import render
from django.http import HttpResponse

def index(request):
return HttpResponse(‘Hello, welcome to the index page.’)

پس از آن ، يك تابع ديگر اضافه خواهيم كرد كه پست شخصي را كه مي خواهيم بعداً در آموزش ايجاد كنيم ، نمايش مي دهد.
~/my_blog_app/blog/blogsite/views.py

def individual_post(request):
return HttpResponse(‘Hi, this is where an individual post will be.’)

فايل نهايي views.py اكنون به شرح زير خواهد بود.
~/my_blog_app/blog/blogsite/views.py
from django.http import HttpResponse
from django.shortcuts import render

def index(request):
return HttpResponse(‘Hello, welcome to the index page.’)

def individual_post(request):
return HttpResponse(‘Hi, this is where an individual post will be.’)

پس از پايان ويرايش فايل ، حتما آن را ذخيره كنيد و خارج شويد. در nano ، مي توانيد CTRL و X ، سپسY ، و ENTER را فشار دهيد.
در حال حاضر ، هيچ URL مشخص شده اي كه اين توابع به آن اشاره كند وجود ندارد ، بنابراين بايد آن را به فايل urlpatterns خود در فايل پيكربندي URL اضافه كنيم. با افزودن نماها، اجازه خواهيم داد كه از طريق اين فايل پيكربندي به نگاشت URLها به آنها بپردازيم تا بتوانيم صفحاتي را كه ايجاد كرده ايم مشاهده كنيم.
مرحله 2 – URL را به نماها نگاشت كنيد
با Django ، مي توانيم URL هاي خود را طراحي كنيم تا با برنامه خود استفاده كنيم. اين كار در پايتون خالص با استفاده از فايلي كه معمولاً به URLconf  يا فايل “پيكربندي URL” شناخته مي شود انجام مي گردد.
براي نمايش صفحه وب ، Django ابتدا بايد ماژول URLconf را براي استفاده تعيين كند ، سپس به دنبال urlpatterns ، يك ساختار داده ليستي است كه شامل همه الگوهاي URL ميباشد. سپس Django از هر الگوي URL عبور مي كند تا اينكه اولين موردي را پيدا كند كه مطابقت داشته باشد. پس از يافتن يك انطباق ، Django نماي مرتبط را پيدا مي كند ، و آن تابع نما داده هاي مربوط به الگوي URL و يك آبجكت HttpRequest را دريافت مي كند. اگر در هر مرحله در طول اين فرآيند خرابي وجود داشته باشد ، به جاي آن ، يك نماي خطا نشان داده مي شود.
در اين بخش ، ما با دو فايل urls.py مختلف در دو ديركتوري مختلف برنامه خود كار خواهيم كرد.
در حالي كه در ديركتوري ~ / my_blog_app / blog / blogsite هستيد، فايل urls.py – كه به عنوان فايل URLconf شما نيز شناخته شده است – را براي ويرايش باز كنيد. ما در اينجا از nano براي ويرايش فايل استفاده خواهيم كرد.

⦁ (env) Sammy@ubuntu:$ nano urls.py

با ليست urlpatterns فايل را به گونه اي تغيير دهيد كه مشابه فايل زير باشد.
~/my_blog_app/blog/blogsite/urls.py
from django.urls import path
from . import views

urlpatterns = [
path(”, views.index, name=’index’),
path(‘post/’, views.individual_post, name=’individual_post’)
]

پس از اتمام خطوط بالا را اضافه كنيد، فايل را ذخيره كرده و ببنديد.
پس از به روزرساني فايل URLconf ديركتوري blogsite ، آن را در URLconf ديركتوري blog قرار خواهيم داد وگرنه قابل تشخصي نيست. ما بايد اين كار را انجام دهيم زيرا در فايل تنظيمات ما به عنوان ROOT_URLCONF تنظيم شده است. اين بدان معناست كه Django در حال جستجوي urlpatterns در آدرس URL ديركتوري blog است.
براي درج blogsite URLconf در blog URLconf ، بايد به آن ديركتوري برويم.
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/blog

پس از رفتن به آنجا ، مي توانيد فايل URLconf را با nano يا ويرايشگر متن ديگر مورد نظر خود باز كنيد.
⦁ (env) Sammy@ubuntu:$ nano urls.py

در اين فايل خطوط زير را اضافه خواهيم كرد تا فايل /blogsite/urls.py را كه با آنها كار كرده ايم درج شود ، كه در خط دوم نشان داده شده است.
~/my_blog_app/blog/blog/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path(‘admin/’, admin.site.urls),
path(”, include(‘blogsite.urls’))
]

فايل را ذخيره كنيد و ببنديد.
اكنون براي رفتن به URL هايي كه ايجاد كرده ايم مي خواهيم مرورگر وب را باز كنيم و تأييد كنيم كه آنها متني را كه ما به نماها اضافه كرده ايم را نمايش مي دهند. براي دسترسي به فايل manage.py كه برنامه Django را ارائه ميدهد ، بايد به پوشه والد برويم.
⦁ (env) Sammy@ubuntu:$ cd ..

دستور زير را صادر كنيد. در زير مي توانيد 0.0.0.0 را با آدرس IP خود جايگزين كنيد.
⦁ (env) Sammy@ubuntu:$ python manage.py runserver 0.0.0.0:8000

در مرورگر وب خود ، به آدرس IP خود ، پورت 8000 برويد:
your-server-ip:8000
يك صفحه وب مشابه زير دريافت خواهيد كرد:

در مرحله بعد ، به URL زير برويد:
your-server-ip:8000/post/
از اينجا بايد صفحه وب زير نمايش داده شود:

اكنون تأييد كرديم كه دو فايل urls.py كار مي كنند و داده ها دقيقاً آنچه را كه انتظار داريم را نشان مي دهد. اكنون بياييد برخي از داده هاي واقعي را وارد وبلاگ خود كنيم.
مرحله 3 – ايجاد يك پست وبلاگ
اكنون كه اصول كاركرد الگوها و نماهاي URL را ميدانيد ، بياييد يك پست وبلاگ اضافه كنيم و به جاي متني كه در فايل هاي پايتون رمزگذاري كرده ايم ، در صفحه وب نمايش داده شود.
پست را از طريق صفحه ادميني كه قبلاً تنظيم كرده ايم ايجاد خواهيم كرد. با استفاده از سرور مجازي خود در برنامه Django ، از يك مرورگر وب استفاده كنيد تا به صفحه وبلاگ نويسي ادمين به آدرس زير برويد:
your-server-ip:8000/admin/blogsite/

در آنجا ، روي پيوند + Add واقع در رديف Posts كليك كنيد تا پر كردن ديتابيس با يك پست وبلاگ نمونه را شروع كنيد

با كليك روي لينك ، فرم ورودي مانند اين را دريافت خواهيد كرد:

هر گاه مي خواهيد پستي اضافه كنيد ، براي اين كار به اين صفحه مي رويد. از طرف ديگر ، مي توانيد پست ها را با لينك تغيير ويرايش كنيد.
در فرم موجود ، مي توانيد قسمتهاي زير را ويرايش كنيد:
فيلد محتوا
عنوان عنوان پست مورد نظر را اينجا اضافه كنيد. به عنوان مثال My First Blog Post
كد شماره صفحه به قسمتي از URL اشاره دارد كه المان آدرس وب معتبر را با كليدواژه هاي قابل خواندن معرفي ميكند. عموما از عنوان صفحه گرفته ميشود. بنابراين در اين حالت ميتوانيم از my-first-blog-post استفاده كنيم
محتوا بدنه پست وبلاگ شماست. براي مثال ما فقط Hello, World! را اضافه ميكنيم، اما شما ميتوانيد هر متن طولاني وارد كنيد.
نويسنده در اين فيلد نام و نام كاربري مربوطه را اضافه كنيد. ما از sammy استفاده ميكنيم

فرم پست وبلاگ را همانطور كه مي بينيد براي اهداف تست خود پر كنيد.

هنگامي كه داده هاي مثال را به صفحه اضافه كرديد ، روي دكمه SAVE كليك كنيد. صفحه تأييد زير را دريافت خواهيد كرد:

تبريك مي گويم! شما اولين پست وبلاگ خود را ايجاد كرده ايد!
در مرحله بعد ، بررسي مي كنيم كه آيا يك رديف به پايگاه داده MySQL اضافه كرده است و شامل داده هايي كه تازه وارد رابط كاربري سرور مجازي كرده ايم ميباشد.
مرحله 4 – نمايش داده هاي بانك اطلاعاتي
در اين مرحله ، بايد به MySQL برويم ، بنابراين فرآيند فعلي سرور مجازي را از طريق ترمينال با تايپ كردن CTRL + C متوقف كنيد ، سپس مفسر MySQL خود را باز كنيد. كاربر ما براي پايگاه داده برنامه Django ، djangouser ميباشد ، اما حتما از كاربر مناسب براي پروژه خود استفاده كنيد.
⦁ (env) sammy@ubuntu:$ mysql -u djangouser

وقتي وارد MySQL شديد ، به پايگاه داده blog_data (يا پايگاه داده اي كه براي پروژه شما صحيح است) برويد:
⦁ Mysql> use blog_data;

سپس محتواي جدول blogsite_post را نمايش دهيد.
⦁ Mysql> select * from blogsite_post;

خروجي مشابه زير را دريافت خواهيد كرد كه بايد اطلاعات اضافه شده شما به رابط كاربري ادمين را نشان دهد.
Output
+—-+——————–+——————–+—————+—————————-+——–+
| id | title | slug | content | created_on | author |
+—-+——————–+——————–+—————+—————————-+——–+
| 1 | My First Blog Post | my-first-blog-post | Hello, World! | 2020-05-14 00:30:03.186564 | Sammy |
+—-+——————–+——————–+—————+—————————-+——–+
1 row in set (0.00 sec)

همانطور كه در خروجي نشان داده شده است ، يك رديف داده براي پستي كه اضافه كرده ايم وجود دارد. اكنون بياييد اين داده ها را به تابع view براي پست ها ارجاع دهيم. براي خروج از مفسر MySQL از CTRL + D استفاده كنيد.
به برنامه فايل views.py در داخل برنامه blogsite  خود برويد.
⦁ (env) sammy@ubuntu:$ cd ~/my_blog_app/blog/blogsite

اكنون فايل را باز كنيد تا بتوانيم داده هاي جديد خود را وارد كنيم.
⦁ (env) sammy@ubuntu:$ nano views.py

فايل را ويرايش كنيد تا همانند فايل زير باشد.
~/my_blog_app/blog/blogsite
from django.shortcuts import render
from django.http import HttpResponse
from .models import Post

def index(request):
return HttpResponse(‘Hello, welcome to the index page.’)

def individual_post(request):
recent_post = Post.objects.get(id__exact=1)
return HttpResponse(recent_post.title + ‘: ‘ + recent_post.content)

در كد بالا ، عبارت ورودي ديگري را براي پست اضافه كرديم. رشته نقل قول شده را نيز از HttpResponse حذف كرديم و آن را با داده هاي پست وبلاگ خود جايگزين كرديم. براي ارجاع داده ها براي يك آبجكت خاص ، از شناسه پست وبلاگ در ارتباط با آبجكت مورد نظر كه ميخواهيم نمايش دهيم استفاده مي كنيم و آن شناسه را در متغيري به نام recent_post ذخيره مي كنيم. سپس مي توانيم با اضافه كردن فيلد با جداكننده دوره ، فيلد هاي خاصي از آن آبجكت را بدست آوريم.
پس از ذخيره كردن و بستن فايل ، براي اجراي برنامه Django به مكان فايل management.py برويد.
⦁ (env) sammy@ubuntu:$ cd ~/my_blog_app/blog

⦁ (env) sammy@ubuntu:$ python manage.py runserver 0.0.0.0:8000

از يك مرورگر وب ، به آدرس زير برويد:
your-server-ip:8000/post/

در اينجا ، ما تغييراتي را كه ايجاد كرده ايم خواهيم ديد. صفحه مشابه اين خواهد بود ، متني را كه به پست اضافه كرديد نشان داده مي شود.

پس از پايان يافتن صفحه ، CTRL + C را در ترمينال فشار دهيد تا روند كار متوقف شود.
براي غيرفعال كردن محيط برنامه نويسي خود ، مي توانيد دستور deactivate را تايپ كرده و سپس از سرور مجازي خارج شويد.
نتيجه
در اين آموزش نماها را ايجاد كرديم، الگوهاي URL را نگاشت كرديم ، و متن را در صفحه وب از پايگاه داده پست وبلاگ خود نمايش داديم.
آموزش بعدي نحوه استفاده از HTML براي ايجاد قالب هاي Django و نحوه زيباسازي را پوشش ميدهد. تاكنون اين مجموعه مدلهاي Django و نماهاي Django را پوشش داده است. قالب ها آخرين قسمت مهم و بنيادي براي پايه و اساس برنامه Django شما هستند.

 

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

 

چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهيد

نحوه ايجاد نماها (Views) براي توسعه وب Django

نصب Mount NFS در اوبونتو 20.04

نحوه توسعه برنامه ها در Kubernetes با Okteto

نصب و پيكربندي Laravel با Nginx در اوبونتو 20.04

نحوه تنظيم Jupyter Notebook با پايتون در Ubuntu 20.04

نصب Jitsi Meet در Debian 10

نصب و پيكربندي Nextcloud در اوبونتو 20.04

نصب و پيكربندي Ansible در اوبونتو 20.04

 

كلمات كليدي خريد سرور

خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريكا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان