آموزش ساده Django

آموزش ساده Django

Django چیست؟

Django یک فریم ورک توسعه وب متن باز می باشد که به افتخار یکی از بزرگترین موزیسین های قرن ۲۱ – Django Reinhrdt نام گذاری شده است. اساس Django یک قانون ساده است -Don’t Repeat Yourself یا خودت را تکرار نکن – این قانون تماما در رابطه با عدم تکرار کدها و ساده بودن انها است که آن را برای خوانده شدن راحت تر می نماید.


توسعه شبکه، به معنای واقعی، تمرین توسعه و رسیدگی به صفحات web و برنامه های شبکه ای است.

چه چیزی این framework را این قدر فوق العاده میکند؟ چرا مردم آن را استفاده میکنند؟ یکی از ویژگی های بارز Django ساخته شدن آن بر پایه Python است، که زبان برنامه نویسی فوق العاده دینامیک و پویایی است. با توجه به این نکته، Django یک کدنویسی با کیفیت که وجه مهمی از این framework می باشد را ارائه میدهد. Django ویژگی های جذاب دیگری همچون یک مدیریت تعمالی خودکار یا نقش نگاری ارتباطی اشیاء (ORM).


چرا باید Django را انتخاب کنیم؟

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

 پکیج ها و بسته های بی شمار:

دسته اجزا و کتابخانه های ارائه شده توسط Django در بالابردن سرعت تمام فرایند توسعه شبکه کمک میکند. به این معنی که نیازی به دانلود و نصب جداگانه کتابخانه ها و بسته نیست و Django تمام انچه را که برای توسعه وب نیاز است در خود دارد. از دیگر بسته هایی که Django در خود دارد میتوان به : User Authentication, Site Maps and Content Administration و موارد  بسیار دیگری اشاره نمود.

امنیت:

Django بر اساس پایتون ساخته شده است، که به همین دلیل با جامعه فعال Python web community بسیار در ارتباط است. این موضوع به توسعه دهندگان کمک میکند تا از بسیاری از اشتباهات ساده امنیتی مانند: cross-site scripting, SQL injection, clickjacking and CSRF پرهیز کنند. Django هم چنین یک سیستم مدیریت کاربر که امکان مدیریت بهتر کاربران را میدهد، را ارائه میکند.

مقیاس پذیری:

با توجه به نحوه رشد تکنولوژی، نوشتن کدهای مقیاس پذیر و اجرا نمودن آنها بسیار حائز اهمیت است. کدهای Django بسیار مقیاس پذیر هستند. بسیار از سایت های با ارزش  همچون Instagram از Django برای فعالیت های Back-end خود استفاده میکنند. Django یک فریم ورک مناسب برای رشد وبسایت شما و افزودن قابلیت های دیگر به آن، ارائه میکند.

کارآیی:

Djangoتوانایی ساخت هر جیزی را دارا است – از مدیریت محتوای سیستم تا پلیتفرم های محاسبات مهندسی شبکه های مجازی. بنابراین Django در تمام زمینه ها کارایی دارد.


معماری Django:

جنگو از معماری MVC-MVT پیروی می نماید.

MVC کوتاه شده عبارت Model View Controller است.

MVC برای توسعه وب جایی که کد به بخش های متنوع تقسیم میشود استفاده میشود. در اینجا ( عکس بالا) ما سه بخش داریم:

  1. Model: در واقع این بخش، back-end می باشد. محلی که پایگاه داده تعریف میگردد. Model برای مرتب سازی و نگاهداری داده ها می باشد.

  2. Views: این بخش کاملا در ارتباط با ارائه می باشد، هرآنچه که کاربر میتواند ببیند به عنوان View خوانده شده و هیچ گونه آگاهی نسبت به Back-end وجود ندارد. در قالب های تعریف شده Django، Views به فرمت html هستند.

  3. Controller: می توان این بخش را به عنوان حلقه ارتباطی دانست. در واقع یک منطق تجاری است که میان Model و View تعامل ایجاد می کند.

MVT کوتاه شده عبارت Model View Template است. 

در MVT، هر رابط کاربری یک قالب از پیش تعریف شده دارد. برای درک بهتر به مثال زیر توجه کنید: تصور کنید میخواهید چندین فرم استاتیک HTML مانند Greetings user1, Greetings user2 و …. را ایجاد نمائید. با قالب، شما تنها یک فایل که hello را همراه با نام متغیر چاپ میکند، خواهید داشت. حال این متغیر به وسیله کمی منطق جایگزین خواهد شد. این زیبایی قالب است، باز استفاده کدها به نهایت کارایی خود در این بخش رسیده اند.

در مورد MVT، Django دارای یک ویژگی درونی است که مسئولیت بخش Controller را برعهده دارد.

حال که با درک معماری و ساختار Django آشنا شدیم، به نحوه عملکرد آن خواهیم پرداخت.

در تصویر بالا، قالب در واقع بخش Front-end است که با View و Model به عنوان back-end در تعامل است. سپس View به Model و قالب ها دست می یابد و آن را  بر روی یک URL می انگارد. پس از آن، Django نقش یک Controller را ایفا کرده و آن را به کاربر نمایش خواهد داد.


نصب Django

همانطور که پیشتر اشاره شد، Django فریم ورکی از Python است. برای نصب Python بر روی سیستم خود به آدرس: https://www.python.org/downloads/ بروید.

برای نصب Django، باید مفهوم pip را بدانیم که یک package manager برای Python است و نصب و لغو نصب کلیه پکیج های Python ( همچنین Django) را بسیار ساده تر خواهد نمود. برای سادگی، از pip استفاده خواهیم نمود تا package های Python را نصب کنیم.

Install virtualenv and virtualenvwrapper

virtualenv and virtualenvwrapper  are packages that provide a dedicated environment for all Django project you create. This is not mandatory but considered as a best practice and will save you time in the future. Simply type:

pip install virtualenvwrapper-win

حال شما به روش زیر میتوانید یک محیط مجازی برای تمام پروژه های خود ایجاد نمائید:

mkvirtualenv project1

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

pip install django

این فرمان، تمام آخرین ورژن بسته های Django را دانلود و نصب مینماید.


اولین برنامه شبکه خود در Django

ابتدا نیاز است که یک پروژه ساخته شود. به آدرسی که میخواهید پروژه شما در آن ساخته شود رفته و دستورات زیر را وارد نمائید:

django-admin startproject myproject

پروژه شما ساخته شده است! حال مسیرهایی که یافته اید را بررسی خواهیم کرد:

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

urls.py – که controller اصلی است و عمل mapping را برروی سایت شما انجام میدهد.

init.py – به پایتون اعلام میکند که با این پروژه باید شبیه به یک بسته پایتونی برخورد شود.

myproject/ – در واثع بسته اصلی پایتون برای پروژه شما است. از این میتوان برای انتقال هرآنچه که شما برای ساخت برنامه خود نیاز دارید استفاده نمود.

wsgi.py – به عنوان یک نقطه ورودی برای WSGI متناسب یا سرورهای شبکه شناخته میشود.

setting.py – فایلی است برای مدیریت کلیه تنظیمات پروژه شما.

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

python manage.py startapp webapp

حال اگر به مسیر ‘webapp’ نگاه کنیم، چند مورد اضافه نسبت به project1 اصلی خواهیم یافت. که شامل model test، که به پایگاه داده back-end شما مربوط است، خواهد بود.

نکته بعدی در آموزش Django، نیاز به انتقال برنامه هایتان به داخل تنظیمات پروژه اتان به صورت دستی است. به همین منظور، myproject/settings.py خود را باز نموده و برنامه خود را اضافه نمائید.

INSTALLED_APPS = (

    ‘webapp’,

    ‘django.contrib.admin’,

    ‘django.contrib.auth’,

    ‘django.contrib.contenttypes’,

    ‘django.contrib.sessions’,

    ‘django.contrib.messages’,

    ‘django.contrib.staticfiles’,


پس از نصب برنامه، ما نیاز داریم که یک view ایجاد نمائیم. webapp/views.py خود را باز نموده و دستور زیر را در آن قرار دهید:

from django.http import HttpResponse

def index(request):

    return HttpResponse(“<H2>HEY! Welcome to Dabirbartar! </H2>”)

در کد بالا، من یک view ایجاد نموده ام که که پاسخ http را باز میگرداند. حال ما نیاز داریم تا این view را به یک url تخصیص دهیم. ما نیازمند یک URLconf در برنامه های خود نیاز داریم. بنابراین، آن را درون webapp خود ایجاد میکنیم. در webapp/urls.py کدهای زیر را اضافه مینمائیم:

from django.conf.urls import url

from . import views

urlpatterns = [

url(r’^$’, views.index, name=’index’),

در کد بالا، من یک view که فهرست (در فایل views.py تعریف شده است) را باز میگرداند، را ارجاع داده ام. الگوی url به شکل معمول خود است که ^ به معنای شروع رشته و $ برای پایان آن است.

قدم بعدی ارجاع دادن ریشه URLconf در ماژول webapp.urls است. خطوط کد زیر را در فایل myproject/urls.py بنویسید:

from django.conf.urls import include, url

from django.contrib import admin

urlpatterns = [

    url(r’^admin/’, include(admin.site.urls)),

    url(r’^webapp/’, include(‘webapp.urls’)),

]

در کد بالا، من webapp و webapp.urls خود را اضافه نموده ام. حال فراموش نکنید که که Django.conf.urls.include را انتقال داده و یک include() در لیست urlpatterns قرار دهید. تابع include() به سایر URLconfs اجازه ارجاع میدهد.


کدنویسی کافی است! سرور را روشن نموده و ببینیم جه روی میدهد. برای روشن نمودن سرور، دستور زیر را تایپ نمائید:

python manage.py startapp webapp

پس از اجرا نمودن سرور، به http://localhost:8000/webapp/ در مرورگر خود بروید، باید عبارت  “HEY! Welcome to Dabirbartar!” را مشاهده نمائید که در فهرست view خود تعریف نموده اید.


برای آموزش بیشتر میتوانید در کلاس های آموزش Django آکادمی متلب و پایتون دبیر برتر ثبت نام نمائید.

دوره ۳۰ ساعته آموزش django در پایتون

۴۵۰,۰۰۰ تومان

دوره ۳۰ ساعته آموزش django در پایتون
مناسب برای تمامی افراد علاقه مند به طراحی سایت
(بدون نیاز به پیشنیاز)
آموزش Upload نمودن سایت برروی انواع سرور
آشنایی با url ها و مسیریابی
تست نویسی
نوشتن وب سرویس ها
و …

  • توضیحات
  • اهداف و پیش نیاز دوره
  • نظرات (۱)

توضیحات

دوره ۳۰ ساعته آموزش django در پایتون و آشنایی با آن

جنگو (Django) یک فریم ورک سطح بالا، رایگان و Open Source برای ساخت Web Application ها می باشد که در پایتون نوشته شده است. با استفاده از فریم‌ ورک جنگو می توانید وب اپلیکیشن های خود را آسان و سریع تر توسعه دهید. هدف از ساخت این فریم ورک اتصال اجزای مشابه سایت است که به دیتابیس نیاز دارند مانند: ثبت نام، ورود و خروج از سیستم، پنل مدیریت، فرم ها، آپلود فایل ها و غیره. با استفاده از فریم‌ورک جنگو نیازی به نوشتن کد های اضافی ندارید. فریم‌ورک جنگو بسیاری از ویژگی های پایتون را به ارث برده است. این فریم‌ورک قادر به ساخت وب سایت های پیچیده و حرفه ای در سریع ترین زمان و با امنیت بالا می باشد. فریم‌ورک جنگو از ساختار Model-View-Controller تبعیت می کند به همین دلیل کد های مربوط به بخش های کنترلی(Controller)، بخش داده ها(Model) و بخش مربوط به رابط کاربری(View) از هم جدا هستند دوره ۳۰ ساعته آموزش django در پایتون، پروژه محور بوده و برای کسانی که تاکنون طراحی وب نکرده اند نیز مناسب است. زیرا مسیری در نظر گرفته شده است تا شما بتوانید جایگاه خود را بشناسید و حتما نیازی نیست تا آگاهی از بخش طراحی سایت (Front ) داشته باشید. تمامی نکاتی که از Front باید بدانید نیز گفته شده است. در دوره ۳۰ ساعته آموزش django در پایتون کار با این فریم‌ورک را از ابتدا تا مرز Junior شدن می آموزید. همچنین شما به راحتی می توانید مسیر خود را در آینده پیدا کنید و در تیم های استارت آپی شروع به کسب درآمد نمایید.

هدف از این دوره این است که شما بتوانید جایگاه خود را بشناسید. در دوره آموزش جنگو کار با این فریم‌ورک را از ابتدا تا مرز Junior شدن می آموزید. همچنین شما به راحتی می توانید مسیر خود را در آینده پیدا کنید و در تیم های استارت آپی شروع به کسب درآمد نمایید.

این دوره بدون پیش نیاز بوده و در جلسه اول تمام مقدمات پایتونی مورد نیاز در ادامه دوره، بیان خواهد شد.

۱ دیدگاه برای دوره ۳۰ ساعته آموزش django در پایتون

  1. امتیاز ۴ از ۵

    Hello there,

    My name is Aly and I would like to know if you would have any interest to have your website here at dabirbartar.com promoted as a resource on our blog alychidesign.com ?

    We are in the midst of updating our broken link resources to include current and up to date resources for our readers. Our resource links are manually approved allowing us to mark a link as a do-follow link as well
    .
    If you may be interested please in being included as a resource on our blog, please let me know.

    Thanks,
    Aly


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

بیشتر بدانید ...

ساخت یک وب سایت دینامیک با Django

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

فریم ورک های پایتون

تعداد وب فریم ورک های پایتون زیاد نیست، اما برخی از بهترین های انها عبارتند از

Django

جنگو پایتون یکی از بهترین ها برای طراحی وب با پایتون می باشد . سادگی در کار کردن با این فریم ورک و همچنین قدرت جنگو مثال زدنی نیست.

Grok

فریم ورک دیگری با مجموعه ای از ویژگی های که نزدیک به جنگو می باشد. اگر تصمیم بگیرید که جنگو را استفاده نکنید می توانید از این فریم ورک (GROK) استفاده کنید ، این یک جایگزین خوب است.

WebPy

یک فریم ورک ساده و سبک است که قابلیت های کمتری به نسبت جنگو دارد ولی میتوان به دلایلی از این فریم ورک هم استفاده کرد .

TurboGears

این فریم ورک در گذشته بسیار استفاده می شده است ولی بیشتر به درد صفحات سبک میخورد. البته بر روی این فریم ورک در چند ماهه اخیر ویرایش هایی انجام شده است که به شدت بهبود پیدا کرده است.

نصب جنگو

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

آموزش کار با ترمینال

با مطالعه این دو آموزش زیر، خود را برای کار با ترمینال آماده سازید.

کدهای مورد استفاده برای نصب جنگو را مشاهده می نمائید. هرچند این دستورات با نسخه ۳ پایتون همخوانی ندارند، بنابراین شما نیازمند نصب نسخه ۷.۲ و یا پایین تر برای اجرای این دستورات می باشد.

سپس ما می توانیم فایل های نصب را پاک نمائیم.

حال آنرا آزمایش میکنیم.

باید ۱.۳.۱ مشاهده شود. در صورت مشاهده جنگو نصب شده است.

ساخت وبلاگ

بهترین راه برای آموزش ساخت سایت با پایتون در ابتدا ساختن یک وبلاگ با پایتون به صورت ساده می باشد .این یک روش عالی برای طراحی سایت با پایتون است .

در ابتدا ما باید یک پروژه جدید در جنگو ایجاد کنیم :

 

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

__init__.py

به پایتون اعلام میکند که فولدر مورد نظر یک پکیج پایتونی است. به این معنی که به پایتون اجازه میدهد تا تمام script های موجود درون فولدر را به عنوان یک ماژول منتقل نماید.

manage.py

درواقع جزئی از وب سایت شما نیست؛ یک اسکریپت ابزاری است که شما میتوانید از command line آنرا اجرا نمائید و شامل تمام آرایه های توابعی است که برای مدیریت سایت خود نیاز دارید.

settings.py

فایلی است که URLها را به یک دیگر متصل نماید می نماید. برای مثال، میتواند yourwebsite.com/about  را به صفحه About Us  متصل نماید.

urls.py

با استفاده از این دستور در واقع می توان صفحات وبسایتی که با پایتون ساخته ایم را به یکدیگر اضافه کنیم و مثلا میتواند صفحه اصلی  را به صفحه تماس با ما متصل کند .

این دستور برای لینک دهی استفاده می شود .

جنگو خود را به عنوان یک MTV framework معرفی میکند که در واقع به معنای Model Template View میباشد.

برنامه ها

با این حال، هیچ کدام از فایل های بالا به تنهایی نمیتوانند یک سایت فعال را ایجاد کنند. به همین دلیل ما نیاز به برنامه ها (Apps) داریم. برنامه ها محلی هستند که شما کدی را که باعث عمل نمودن وب سایت شما میشود در آن مینویسد، اما پیش از استفاده از آنها، باسد کمی درباره ضوابط طراحی جنگو بدانیم

نخست، جنگو یک فریم ورک MVC است، که به معنای Model View Controller می باشد. همچنین جنگو خود را به عنوان یک فریم ورک MTV می شناسد که به معنای Model Template View است که با فریم ورک MVC تفاوت ناچیز دارد. اما اساساً هردو شبیه به هم هستند. در هر حال، MVC یک الگوی وابسته به معماری است که روشی برای ساختاربندی پروژه شما ارائه میدهد. به این معنی که کدی را که برای پردازش داده استفاده شده است از کدی که برای مدیریت رابط کاربری استفاده شده است جدا می نماید.

جنگو بر اساس فلسفه DRY یا  ” خودت را دوباره تکرار نکن” عمل می کند.

ثانیاً، جنگو براساس فلسفه DRY یا ” خودت را دوباره تکرار نکن” عمل مینماید. که به این معنی است که، نباید یک کد که یک وظیفه مشخص را انجام میدهد را چندبار استفاده نمائید. برای مثال، اگر در بلاگی، این ویژگی را نوشته باشیم که مقاله ای را به صورت انتخابی از آرشیو انتخاب نماید، و این کدرا برای باقی صفحات نیز بخواهیم، تنها کافی است آنرا برای دیگر صفحات نیز استفاده کنیم و نیازی نیست که دوباره آنرا بنویسیم.

ممکن است سوال شود که برنامه ها چه مزیتی دارند؟ برنامه ها اجازه میدهند که وب سایت به شکل DRY نوشته شوند. هر پروژه ای، همانند آنچه ما اینجا داریم، میتواند شامل چندین برنامه شود. همچنین یک برنامه میتواند بخشی از چندیدن پروژه باشد. با توجه به مثالی که قبلا به ان اشاره شد، این به این معنی است که اگر ما در آینده سایتی ساختیم که نیاز به ویژگی گزینش انتخاب صفحات داشت، نیازی نیست که دوباره از ابتدا آنرا بنویسیم. ما به سادگی میتوانیم برنامه را از این پروژه منتقل کنیم. به همین دلیل، مهم است که هر برنامه، یک هدف مشخص را به سرانجام برساند. اگر تمام عملکر سایت خود را تنها بایک برنامه بنویسید و در اینده به بخشی از آن نیاز داشته باشید باید تمام آن را منتقل نمائید. برای مثال اگر در حال ساخت یک وب سایت فروش اینترنتی (eCommerce) بوده باشید، و نخواهید تمام ویژگی های بلاگ را منتقل نمائید. از سوی دیگر، اگر یک برنامه برای گزینش انتخابی و برنامه ای دیگر برای سیستم انتشارات بلاگ ساخته باشید، میتوانید هر بخشی از آن را که نیاز دارید انتخاب و منتقل نمائید. این همچنین به این معنی است که درون سایت کدها به خوبی دسته بندی شده اند. اگر شما بخواهید یک ویژگی را تغییر دهید، نیازی نیست که در تمام فایل به دنبال آن به جست و جو بپردازید؛ شما میتوانید به راحتی به برنامه مدنظر خود دسترسی داشته و آنرا بدون نگرانی از تداخل و تغییر در باقی موارد، تغییر دهید.

دوباره، ما یک فایل __init__.py  برای پکیج ساختن آن داریم و سه فایل دیگر: مدل ها، آزمایش ها و بازدیدها. در حال حاضر نیازی به بررسی آزمایشات نیست، اما دو مورد دیگر دارای اهمیت می باشند. مدل ها و بازدید ها بخش های M و V از MVC می باشند.در مدل، ما ساختار داده هایمان را تعریف می نمائیم.

در صورتی که پیش از این با PHP کار کرده باشید، ممکن است از PhpMyAdmin برای ساخت جداول MySQL خود استفاده کرده باشید، و سپس جستارهای SQL خود را به صورت دستی در متن PHP خود وارد کرده باشید. در جنگو این مسئله بسیار ساده تر است. ما تمام ساختار داده ای که برای مدل نیاز داریم تعریف کرده و یک دستور را اجرا میکنیم و تمام پایگاه داده های ضروری ساخته خواهند شد.

زمانی که شما نیاز به داشتن دسترسی به آن داده را دارید، شما به وسیله این مدل ها و با استفاده از فراخوانی روش بر روی آنها میتوانید به آنها دست یابد به جای آنکه جستار های خالی راجست و جو نمائید. این بسیار مفید است زیرا جنگو میتواند از چندین برنامه پایگاه داده استفاده نماید. برای مثال ما از MySQL استفاده خواهیم کرد، زیرا قویترین برنامه پایگاه داده بوده و قالب host ها پذیرای ان هستند.، اما اگر نیاز باشد که به پایگاه داده دیگری در آینده منتقل شویم،تمام کدها مجاز خواهند بود. در سایر زبان ها، اگر در پی تغییر به SQLite یا موردی دیگر بودید، نیاز بود تا دوباره تمام کدهای دسترسی به پایگاه داده را بازنویسی نمائید.

در فایل های مشاهده (view)، ما کدی را مینویسیم که در واقع صفحات وب را تولید می نماید و در واقع تمام بخش ها را به یکدیگر متصل می نماید. زمانی که یک کاربر یک URL تایپ میکند، توسط اسکریپت  urls  که ما پیشتر آنرا دیدیم، به اسکریپت  views فرستاده میشود، که سپس داده های مرتبط از مدل را میگیرد، آنرا پردازش کرده و آنرا با قالب پیش فرض ارسال می نماید که نهایتا به عنوان صفحه ای که کاربر میبند به نمایش در خواهد امد. ما نگاهی کوتاه به ان قالب های پیشفرض خواهیم داشت. آنها آسان ترین بخش هستند – غالبا HTML.

برای یک بلاگ، ما جدولی از ارسال ها نیاز خواهیم داشت، همراه با چندین بخش برای عنوان، نوشته بدنه، نویسنده، زمان نوشته شدن و علی آخر. یک بلاگ واقعی باید دارای بخش نظرات باشد، اما این موضوع خارج از آموزش ما می باشد.

MySQL

این مدل ها تنها توضیح هستند. ما نیازمند هستیم تا یک پایگاه داده واقعی از آنها بسازیم. ابتدا، نیاز داریم تا MySQL بر روی سیستم ما اجرا شود. بر روی یک وب سرور واقعی، این موضوع مشکلی نخواهد بود زیرا آنها به طور پیش فرض آنرا نصب  کرده اند. خوشبختانه، با یک مدیریت پکیج، نصب ان اسان است. نخست. باید Homebrew  و Easy Install را نصب نمائید.

زمانی که شما ری استارت میکنید، MySQL اجرا نخواهد شد، پس هر زمانی در اینده که شما نیاز دارید تا server شروع به کار نماید باید،  mysqld  را اجرا نمائید. سپس شما میتوانید در یک زبانه جدید python2.6 manange.py runserver  را اجرا نمائید تا سرور توسعه را اجرا نماید. این دستور هنوز باعث اجرای سرور نخواهد شد، و تنها یک پیغام خطا را نشان خواهد داد. زیرا نیاز است تا تنظیمات پیکربندی شوند. به فایل    settings.py. توجه فرمایید. ابتدا لازم است که تنظیمات پایگاه داده تغییر یابد که از خط ۱۲ شروع میگردد.

در صورتی که sever را بار دیگر اجرا نمائید، باید به دستی عمل کند، به اعلام نماید که شما با موفقیت MySQL را نصب نمده اید. در صورتی که شما ۱۲۷.۰.۰.۱:۸۰۰ رت در مرورگر اینترنت خود جست و جو نمائید، باید صفحه پیشفرض جنگو را مشاهده کنید. حال به تغییر سایت جنگویی خود به یک بلاگ می پردازیم. ابتدا، نیاز است با استفاده از مدل ها جداولی را در پایگاه داده به وسیله اجرا کردن دستور زیر ایجاد نمائیم.

هر مرتبه که شما مدل های خود را تغییر دهید، باید این دستور را اجرا نمائید تا پایگاه داده را به روز نمائید. توجه داشته باشید که این موضوع باعث تغییر بخش های موجود نخواهد شد؛ تنها ممکن است مدل های بخش های جدید را اضافه نماید. بنابراین درصورتی که در پی پاک نمودن بخش ها هستنید، باید به صورت دستی و شبیه به PhpMyAdmin این عمل را انجام دهید. با توجه به اینکه بار اولی است که ما این دستور را اجرا میکنماییم، جنگو تمام جداول پیش ساخته را نصب خواهد کرد. تنها تایپ کنید “yes” و سپس جزئیات خود را وارد نمائید.

حال بیایید به نصب فایل urls.py   بپردازیم. خط اول در بخش مثال ها را از حالت comment خارج کرده و آنرا به   url(r’^$’, ‘FirstBlog.blog.views.home’, name=’home’) . تغییر دهید. حال، فایل های view را برای پاسخ به این درخواست ها ایجاد میکنیم.

قالب ها

این فایل index.html   هنوز وجود ندارد، پس باید ان را ساخت. پوشه ای ساخته، نام templates در برنامه  blog  را به آن داده و فایلی را به نام index.html در آن ذخیره میکنیم، که به سادگی میتواند شامل “Hello world” باشد. سپس نیاز است تا فایل تنظیمات را تغییر دهیم تا جنگو بداند که این قالب در کجا قرار دارد. خط ۱۰۵ محلی است که بخش مربوط به محل قرار گیری قالب ها شروع میشود؛ پس به صورت زیر ان را تغییر دهید:

اگر سرور را دوباره اجرا و صفحه را در مرورگر خود refresh نمائید، باید پیغام “Hello World” را مشاهده نمائید. حال ما میتوانیم بلاگ خود را منتشز نمائیم. ما چند کد متنی HTML را به صفحه خانه اضافه خواهیم کرد.

در صورتی که ذخیره سازی را انجام داده و صفحه را refresh نمائید، خواهید دید که صفحه با محتویات جدید به روز رسانی شده است. قدم بعدی افزودن محتوای دینامیک از پایگاه داده است. برای انجام این مهم، جنگو دارای یک زبان پیش فرض داراد که اجازه میدهد تا متغیر ها به وسیله پرانتز ها با یک دیگر ترکیب شوند. بخش میانی صفحه خود را تغییر دهید تا به شکل زیر تبدیل شود:

حال میتوانیم به این متغیرها از طریق فایل views.py   به وسیله ساخت یک dictionary از مقادیر، مقدار دهی نمائیم.

پس از ذخیره سازی و refresh، مشاهده خواهید کرد که محتوا را از طریق فایل view در یک غالب قرار داده اید. قدم نهایی این است که داده را از پایگاه داده گرفته و آن را جایگذاری نمائیم. خوشبختانه ما میتوانیم این کار را بدون نیاز به جستار های SQL،  با استفاده از مدل های جنگو انجام دهیم. نیاز است که برنامه  blog خود را به پروژه  FirstBlog  به وسیله تغییر یک تنظیم دیگر اضافه نمائیم. به خط ۱۱۲ INSTALLED_APPS   رفته و خط زیر را به لیست اضافه نمائید.

سپس، قالب را به روز رسانی نمائید تا به این داده ها دسترسی پیدا کنید.

حال، به تمام داده های موجود در جدولمان در فایل views.py  دسترسی داریم، سپس تنها ۱۰ ورودی ابتدایی را انتخاب میکنیم. این داده را در قالب قرار میدهیم،  حلقه ای برای ورودی ها ایجاد نموده، داده ها را با HTML سایت خود نشان خواهیم داد. این عمل هنوز عملی نخواهد شد، زیرا در پایگاه داده چیزی وجود ندارد. سرور را متوقف کرده و اجرا کنید:

جدولی جدید برای ارسال های ما در دیتا بیس ایجاد میکند. سپس، زبانه جدید باز کرده و تایپ کنید:

رمز عبور خود را تایپ کرده، دکمه enter را زده،  و اجرا نمائید:

به زبانه قبلی بازگشته و سرور را دوباره اجرا نمائید. صفحه را refresh نموده و باید یک ارسال وبلاگی را شماهده نمائید که به تازگی اضافه نموده اید. در صورتی که دستور MySQL را چند بار بیشتر اجرا نمائید، ارسال های بیشتری را بر روی فحه خواهید دید زمانی که آنرا refresh می نمائید.

سیستم مدیریت جنگو

آخرین نکته ای که باید به آن توجه شود، سیستم مدیریت جنگو است. این قابلیتی بسیار قدرتمند از سری قابلیت های جنگو می باشد که این امکان را فراهم می نماید تا بدون نوشتن هیچ کدی به مدیریت سایت پرداخت، در صورتی که اگر یک سایت از صفر ساخته شود برای مدیریت آن چنین عملی الزامی است. برای فعال سازی آن باید تعدادی از تنظیمات را تغییر دهینم. ابتدا خطوط ۴، ۵، ۱۳ و ۱۶ درون برنامه urls.py را از حالت Comment خارج کرده تا به صفحه مدیریت دسترسی پیدا کنیم. سپس به بخش INSTALLED_APPS از برنامه settings.py  رفته و ‘django.contrib.admin’,  و  ‘django.contrib.admindocs’, را از حالت comment خارج کنید. به منظور نظارت مدیر بر جدول  posts ، در پوشه blog  فایلی جدید به نام admin.py  اضافه نموده و خطوط زیر را اضافه نمائید.

بار دیگر python2.6 manage.py syncdb  را جرا کنید تا جداول برای بخش مدیر هم افزوده شوند، و سرور را ری استارت نمائید.

در صورتی که ۱۲۷.۰.۰.۱:۸۰۰۰/admin را در مرور گر خود مشاهده نمودید، باید صفحه ورد را مشاهده کنید. از جزئیاتی که پیشتر در زمان اجرای syncdb  انتخاب نموده بودید استفاده نمائید. باید بخشی را به عنوان بلاگ با زیر عنوانی برای  جدول posts  مشاهده نمائید. میتوانید به سادگی برای خلق، تغییر یا حذف ارسا های بلاگ استفاده نمائید.

تبریک شما یک بلاگ ساخته اید.

در انتها به نصب جنگو بر روی یک وب سرور می پردازیم.

نصب بر روی یک وب سرور

 دو نوع web hosting وجود دارد، و انتخاب شما بر استفاده از جنگو اثر گذار خواهد بود. در صورتی که یک host اشتراک گذاری شده دارید، host شما بسیار مناسب است.

بسیاری از host های ارزان قیمت از پایتون پشتیبانی  نمی کنند. در حالی که PHP کاملا تضمین شده است، حمایت از سایر زبان ها غالبا وجود ندارد. شما باید control panel را بررسی نمائید تا دریابید پیاتون (و جنگو) در دسترس هستند یا خیر. مسلما فرایند برای هر host متفاوت است. تقریبا تمام host ها بر روی Apache اجرا میشوند، و ما میتوانیم با استفاده از ماژول های mod_wsgi  یا mod_python  برای میزبانی جنگو اسفاده نمائیم.

اکثریت host ها متون را با استفاده از CGI به چندین زبان اجرا میکنند. جنگو میتواند بر روی FastCGi و به طور تئوری بر روی CGI اجرا شود، اما رسما این موضوع اعلام نشده است. بنابراین باید بررسی نمود که آیا این ها نصب شده اند یا خیر. معمولا در زیر بخش heading، برای مثال، “CGI and Scripting Language Support” یافت می شوند.

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

به محض نصب جنگو بر روی سرورتان، سایتی که پیشتر ایجاد نمودید را به وسیله هر file transfer client مدنظر خود، بارگزاری نمائید. میتوانید این فایل ها را در هر محلی قرار دهید، اما آنها را ر پوشه  public  قرار ندهید، که در این صورت هر فردی میتواند کدهای اصلی سایت شما را مشاهده نماید.

سپس، یک پایگاه داده MySQL ساخته، نام آن را ‘firstblog’ گذاشته و syncdb  را دوباره اجرا نمائید. شما دوباره باید حساب کاربری خود را برای میز مدیریتی ایجاد نمائید، اما این تنها دفعه خواهد بود. با اجرای این فاسل با خطا مواجه خواهید شد، زیر تنظیمات سرور با تنظیمات کامپیوتر شخصی شما متفاوت است. ممکن است نیاز باشد تا رمز عبور خود را که درون settings.py قرار دارد تغییر دهید، اما با توجه به پیکر بندی سرور، ممکن است با مشکلات دیگری نیز برخورد نمائید. میتوانید از گوگل کمک بگیرید. این بار برای اجرای سرور ، دستور تا حدودی متفاوت است. شما باید یک آدرس IP مشخص و یک port معین را برای دسترسی به سایت بر روی نت، مشخص نمائید.

در صورتی که سایت خود را در یک مرورگر وب و بر روی پورت ۸۰۰۰ مشاهده کنید، سایت خود را خواهید دید.

بیشتر بدانید ...