نحوه استفاده از کتابخانه Django – بخش اول

نحوه استفاده از کتابخانه Django – بخش اول

در مقاله قبلی کتابخانه Django را معرفی کردیم. همچنین نحوه نصب آن را توضیح دادم. فارغ از دستور ساده ای که برای نصب Django گفته شد، نیازمندی های دیگری برای نصب این کتابخانه مورد نیاز است. به همین دلیل پیشنهاد می گردد برای نصب کامل و صحیح این کتابخانه به سایت اصلی آن مراجعه کرده و به دستورالعمل نصب آن را مطالعه و اجرا کنید.

بعد از نصب موفق این کتابخانه نوبت به استفاده از آن می رسد. در این مقاله می خواهیم اولین پروژه خود را استارت زده و تولید کنیم. برای اطمینان از نصب صحیح Django لطفا دستور زیر را اجرا کنید:

(pythonhome.ir) C:Windowssystem32>python -m django --version
2.1.5

همانطور که مشخص است بعد از اجرای دستور فوق و در صورتی که کار نصب با موفقیت انجام شده باشد می بایست نسخه Django نصب شده را ببینید.

اولین قدم بعد از نصب کتابخانه Django ایجاد یک پروژه است. ابتدا به مسیری که می خواهید پروژه در آن ایجاد شود رفته و سپس دستور زیر را اجرا کنید:

(pythonhome.ir) C:Windowssystem32>d:

(pythonhome.ir) D:>cd PythonProjects

(pythonhome.ir) D:PythonProjects>cd Sites

(pythonhome.ir) D:PythonProjectsSites>django-admin startproject mysite01

همانطور که مشخص است ابتدا به مسیر مورد نظر رفته و با استفاده از دستور django-admin startproject پروژه خود را ایجاد می کنیم. پوشه ای با نام mysite01 در مسیر مورد نظر ایجاد شده است.

نکته: در نام گذاری اسم پروژه از اسامی پیش فرض در python و یا Django خودداری کنید. یعنی به طورمثال از اسامی مانند Django و یا test که باعث تداخل خواهد شد خودداری کنید.

اجازه دهید ببینیم که startproject چه فایل هایی را ایجاد می کند:

mysite01/
          manage.py
          mysite/
                   __init__.py
                   settings.py
                   urls.py
                   wsgi.py

و البته توضیح هریک از آنها:

/mysite01 که نام پوشه root پروژه است و کلیه فایلهای دیگر در آن ایجاد می گردند. این اسم برای Django دارای اهمیت نیست و شما می توانید آن را rename کنید.

manage.py یک ابزار خط فرمان است که به شما امکان می دهد با روش های مختلف از این پروژه استفاده کنید. شما می توانید تمام جزئیات مربوط به manage.py را در django-admin و manage.py را بخوانید.

/mysite01 که یک پوشه است که در واقع پکیج پروژه پایتون شما در این پوشه قرار دارد. نام این پوشه دقیقا نام پکیج شماست که در مثال ما mysite01 می باشد. هرفایل دیگری می بایست درون این پوشه قرار گیرد.

__init__ این فایل که پسوند py دارد و در داخل پوشه mysite01 قرار گرفته است به پایتون اعلام می کند که احتمالا با یک پکیج پایتون روبروست.

settings که فایلی با پسوند py است تنظیمات مربوط به Django در این فایل قرار دارد. در صورتی که می خواهید اطلاعات بیشتری راجه به تنظیمات کتابخانه Django کسب کنید اینجـــــــــا را کلیک کنید.

urls که پسوند این فایل نیز py است. تعاریف URL برای پروژه Django شما. یک “جدول محتویات” یا همان “table of contents” سایت شما. شما می توانید اطلاعات بیشتر در مورد URL ها را در URL dispatcher بخوانید.

wsgi فایلی باز هم با پسوند py. نقطه ورود برای وب سرورهای سازگار با WSGI برای خدمت به پروژه شما. برای اطلاعات بیشتر به نحوه استقرار WSGI مراجعه کنید.

توسعه سرور

اجازه دهید ببینیم سایت شما درست کار می کند یا خیر. برای این کار به پوشه mysite01 بروید و دستور زیر را اجرا کنید:

(pythonhome.ir) D:PythonProjectsSitesmysite01>py manage.py runserver

می بایست خروجی زیر را در ادامه آن ببینید:

Performing system checks…

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.
January 10, 2019 – 23:58:26
Django version 2.1.5, using settings ‘mysite01.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

نکته: هشدارهایی که در خصوص database migration می بینید را فعلا نادیده بگیرید.

شما سرور Django Development ایجاد کرده اید، یک وب سرور سبک که فقط در پایتون نوشته شده است. این سرور در کنار Django قرارگرفته است تا بتوانید در زمان توسعه و بدون نیاز به تنظیم وب سروری مانند Apache پروژه خود را تست کنید.

اکنون زمان خوبی برای یادآوری است: از این سرور در محیط تولید استفاده نکنید. این سرور فقط برای استفاده در زمان توسعه مناسب است. (Django در زمینه ساخت framework وب فعالیت می کند، و نه سرورهای وب.)

خوب برای تست وب سایت خود به آدرس http://127.0.0.1:8000 بروید. می بایست وب سایتی مشابه تصویر زیر را ببینید:

اولین پروژه Django

نکته: دستور runserver  به صورت پیش فرض پروژه شما را بر روی Local IP و بر روی port شماره ۸۰۰۰ deploy می کند. در صورتی که می خواهید port دیگری را درنظر بگیرید کافی است در زمان اجرای این دستور در خط فرمان، شماره port را به عنوان یک آرگومان به دستور پاس دهید. برای روشن شدن این موضوع به مثال زیر و همچنین خروجی آن توجه کنید:

(pythonhome.ir) D:PythonProjectsSitesmysite01>py manage.py runserver 8080
Performing system checks…

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.
January 11, 2019 – 11:42:15
Django version 2.1.5, using settings ‘mysite01.settings’
Starting development server at http://127.0.0.1:8080/
Quit the server with CTRL-BREAK.

همانطور که می بینید در این مثال سرور بر روی port شماره ۸۰۸۰ بارگزاری شده است.

در صورتی که مایلید IP را نیز تغییر  دهید، در امتداد دستور و قبل از شماره port با استفاده از کاراکتر “:” IP مورد نظر خود را ذکر کنید. به عنوان مثال برای استفاده از کلیه IP های موجود می توانید از دستور زیر استفاده کنید:

(pythonhome.ir) D:PythonProjectsSitesmysite01>py manage.py runserver 0:8000

ایجاد Polls app

حالا که محیط پروژه شما تنظیم شده است، زمان آن است که شروع به انجام کار کنید.هر برنامه ای که در Django می نویسید شامل یک بسته پایتون است که به دنبال یک هدف خاص است. کتابخانه Django به همراه یک سری ابزارهای خاص است که به طور خودکار ساختار دایرکتوری مورد نیاز یک برنامه را تولید می کند، بنابراین شما می توانید بر نوشتن کد تمرکز کنید تا ایجاد دایرکتوری.

نکته: تفاوت بین یک پروژه و یک برنامه چیست؟ برنامه یک web application است که کاری انجام می دهد – مثلا یک سیستم وبلاگ، یک پایگاه داده از پرونده های عمومی یا یک برنامه نظرسنجی ساده. یک پروژه مجموعه ای از پیکربندی و برنامه ها برای یک وب سایت خاص است. یک پروژه می تواند شامل چندین برنامه باشد. یک برنامه میتواند در پروژههای مختلف باشد.

برنامه های شما می توانند در هر نقطه از پروژه پایتون شما قرار گیرد. در این آموزش، poll app را درست در کنار فایل manager.py ایجاد می کنیم تا بتوان آن را به عنوان یک ماژول در سطح بالا استفاده کرد، به جای یک زیرمودل از mysite01.

برای ایجاد برنامه خود، مطمئن شوید که در همان دایرکتوری قراردارید که فایل manage.py در آن قرار دارد و سپس این دستور را اجرا کنید:

(pythonhome.ir) D:PythonProjectsSitesmysite01>dir
Volume in drive D has no label.
Volume Serial Number is 30F7-B34A

Directory of D:PythonProjectsSitesmysite01

01/10/2019 11:58 PM

.
01/10/2019 11:58 PM..
01/10/2019 11:58 PM 0 db.sqlite3
01/10/2019 11:24 PM 555 manage.py
01/10/2019 11:58 PMmysite01
2 File(s) 555 bytes
3 Dir(s) 241,378,807,808 bytes free

(pythonhome.ir) D:PythonProjectsSitesmysite01>py manage.py startapp polls

همانطور که می بینید ابتدا  مسیر را چک کرده و سپس دستور مورد نظر را اجرا کردیم. بعد از اجرای دستور اگر مسیر بروید پوشه ای با نام polls ایجاد شده است. محتویات این پوشه را می توانید در زیر ببینید:

polls/
          __init__.py
          admin.py
          apps.py
          migrations/
                   __init__.py
          models.py
          tests.py
          views.py

اولین view خود را ایجاد کنید

برای نوشتن اولین view، فایل polls/view با پسوند py را یباز کرده و کد زیر را در آن اضافه کنید:

from django.http import HttpResponse

def index(request):
return HttpResponse("Hello, world. You're at the polls index.")

این ساده ترین view ممکن در Django است. برای دیدن آن می بایست آن را به یک URL مپ کنید. و برای این کار نیاز به URLconf داریم.

برای ایجاد URLconf کافی است فایلی به نام urls و با پسوند py در پوشه polls ایجاد کنید. سپس خطوط زیر را درون این فایل بنویسید:

from django.urls import path

from . import views

urlpatterns = [
          path('', views.index, name='index'),
]

قدم بعدی آن است که URLconf اصلی یا root با به سمت polls/urls بفرستیم. در فایل mysite01/urls با پسوند py کتابخانه django.urls.include را import کرده و در قسمت urlpatterns می بایست include() را اضافه کنید. محتویات فایل mysite01/urls به صورت زیر خواهد بود:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]

تابع include () اجازه می دهد تا سایر URLconf ها را ارجاع دهد. در هر زمان که Djangi با include () روبرو شود، هر بخشی از URL که مطابقت دارد را جدا کرده و رشته باقی مانده را برای پردازش بیشتر به URLconf شامل ارسال می کند.

ایده پشن include () این است که URL های plug-and-play را آسان کند. از آنجا که pollها در URLconf خود هستند (polls / urls.py)، آنها می توانند تحت “/ polls /” یا زیر “/ fun_polls /” یا تحت “/ content / polls /” یا هر ریشه مسیر دیگری قرار گیرند و برنامه هنوز هم کار خواهد کرد.

نکته: چه زمانی باید از ()incloude  استفاده کرد؟ هرزمان که url شما شامل ساختارهای دیگری باشد شما می بایست از ()include استفاده کنید. admin.site.urls تنها استثنا در این رابطه است.

برای مشاهده نتیجه کار سرور را با دستور py manage.py runserver اجرا کرده و سپس آدرس ا در مرورگر خود اجرا کنید:  http://127.0.0.1:8000/polls/

نتیجه را می توانید به وضوح در تصویر زیر مشاهده کنید:

کتابخانه Django

تابع ()path به چهار آرگومان نیاز دارد. که ۲ تای آنها اجباری و ۲ تای دیگر اختیاری و یا optional هستند. پارامترهای اصی عبارتند از route و view و پارامترهای اختیاری kwaegs و name هستند.

در مقاله ای دیگر به بررسی نحوه کار با بانک های اطلاعاتی در کتابخانه Django را بررسی خواهیم کرد.

2 دیدگاه در “نحوه استفاده از کتابخانه Django – بخش اول

  • با سلام

    ممنون از مطالب مفیدتان، میشه در مورد اتصال جانگو به SQL Server هم توضیح بدید.
    برنامه پایتون با دستورات pyodbc به SQL Server وصل میشه اما تو جانگو وقتی تنطیمات رو به SQL Server تغییر میدی در Migrate خطا میده.

    با سپاس

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *