ساخت اولین پروژه در Django

Build the first project in Django

django-hello-world

پس از یادگیری نصب جنگو در درس «نصب جنگو» حال نوبت به ساخت اولین پروژه خود در جنگو می رسد. اما قبل از آن نیاز است که جهت درک بهتر کار با جنگو، به توضیحاتی درباره فایل های ایجاد شده در هنگام ساخت پروژه، تفاوت app با project در جنگو و ... بپردازیم.

شروع جدی با جنگو

برای آنکه بتوانید با استفاده از زبان پایتون و فریمورک جنگو (django) ایده های خود را پیاده سازی کنید و پروژه هایتان را  به خوبی و با سرعت توسعه دهید نیاز به یک IDE یا ویرایشگر متن دارید. IDE هایی Pycharm و Pydev و ادیتور هایی مانند اتم، ویژوال استودیو کد، sublime قطعا کار شما را به خوبی راه می اندازند که می توانید با یک سرچ ساده از تفاوت هایشان آگاه شوید و هرکدام از این نرم افزارها را دانلود کنید.

تفاوت app با project در Django

در هر پروژه ای با جنگو نیاز است که app ها و project هایی بسازید (که نحوه ساخت آن را جلوتر توضیح خواهیم داد) و باید تفاوت این دو را بدانیم. project را در واقع می توانیم مانند دامین اصلی و app را مانند ساب دامین دانست و یا به زبان ساده project از مجموعه ای از app ها ساخته شده است.

برای مثال فرض کنید که می خواهیم یک سایت خبری شامل مقالات، اخبار سیاسی، نظرسنجی و.. را با جنگو پیاده سازی کنیم. در اینجا سایت خبری یک project محسوب می شود و بخش مقالات یا اخبار سیاسی هر کدام یک app محسوب می شوند.

اما آیا همیشه یک الگوی مشخصی جهت ساخت و مشخص ساختن app ها وجود دارد؟ پاسخ خیر است! این به نوع نگاه برنامه نویس بستگی دارد که چه بخش هایی را می خواهد به عنوان یک app تعریف کند. شاید در این مثال برنامه نویسی بخش مقالات را یک app و یا برنامه نویس دیگری مقالات و اخبار سیاسی را یک app در نظر بگیرد. (که مشخص است مورد اول کاملا بهتر و بهینه تر می باشد)

طریقه ساخت یک پروژه در جنگو

ساخت یک پروژه جدید جنگو بسیار راحت است. کافی است که به محیط cmd رفته، به مسیر یا آدرسی که می خواهید در آن فایل ذخیره شود بروید و دستور زیر را وارد کنید.

django-admin startproject firstproject

توجه کنید که firstproject نام پروژه ای است که ما انتخاب کرده ایم و شما می توانید هر اسمی که می خواهید برای پروژه تان انتخاب کنید و بعد از startproject وارد کنید.

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

راه اندازی اولیه پروژه جنگو (django)

فایل manage.py  فایلی است که به صورت اتوماتیک در هر فایل پروژه جنگو ایجاد می شود. فایل manage.py در واقع راهی برای تعامل با پروژه شما از طریق خط فرمان (cmd) است. به عنوان مثال با تایپ python manage.py runserver  در مسیر فایلتان در cmd پروژه شما روی سرور محلی جنگو اجرا (run) خواهد شد و شما میتوانید در حین توسعه پروژه نتیجه کدهای خود را مشاهده کنید.

و در فولدر firstproject (که نام پروژه ایی است که ساخته اید) فایل های پایتونی زیر را مشاهده خواهید کرد.

فایل های پایتون در جنگو

طریقه ساخت app در جنگو

ساخت یا ایجاد app نیز به همان راحتی ساخت یک پروژه جدید در جنگو است. کافی است فقط در cmd به مسیری که پروژه خود را ایجاد کرده بروید و دستور زیر را وارد کنید.

python manage.py startapp myapp

پس از انجام این دستور، یک فایل هم نام با اسم app شما (که اینجا myapp است) داخل فایل پروژه (همان فایل firstproject) ایجاد می شود.

راه اندازی اولیه فریم ورک جنگو و فایل ها

در فولدر myapp فایل های زیر ایجاد می شود:

  • myapp/
  • __init__.py
  • admin.py
  • models.py
  • tests.py
  • views.py

ساخت اولین پروژه در جنگو HELLO WORLD!

تا اینجای کار یاد گرفتیم که چگونه یک پروژه (project) و همچنین یک اپ (app) ایجاد کنیم. حال می خواهیم که کاربر با تایپ یک url صفحه ای را دریافت کند که hello world در آن نمایش داده شود.

همانطور که توضیح داده شد و همچنین در تصویر زیر می بینید یک پروژه و اپ جدید در یک مسیر دلخواه خواهیم ساخت.

ساخت app و project در جنگو (django)

حال فایل helloworldproject را در یک ادیتور یا IDE باز می کنیم. مانند تصویر به قسمت URLS.PY می رویم. در URLS.PY همانطور که از اسمش هم پیداست مشخص می سازیم که درصورتی که یک url (آدرس) ارسال شد چه دستوراتی اجرا شوند. مثلا در مثال ساده ایی که پیش رو داریم،  در URLS.PY مشخص می کنیم که درصورتی که url (آدرس) hello تایپ شد در صفحه ما رشته HELLO WORLD! نمایش داده شود.

ویرایش جنگو با ادیتور vscode

حال در app پروژه خود در فایل views.py منطق برنامه خود را پیاده می کنیم.

افزودن متدها به پنجره جنگو

تابع answer وظیفه نمایش رشته ساده hello world را دارد. حال باید در urls.py تغییراتی را اعمال کنیم.

نمایش داده های ویو در جنگو

حال با دستور python manage.py runserver  در cmd و کپی کردن آدرسی که به شما برمی گرداند در مرورگر وب خود می توانید حاصل این مثال ساده ایی که انجام شد را ببینید.

اجرا کردن پروژه جنگو در مرورگر (Django)

خروجی پروژه مقدماتی با جنگو (Django)

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری آموزش جنگو در پایتون توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما (8 دیدگاه)

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

جواد
08 آذر 1399
با سلام من هنگام وارد کردن این بخش python manage.py startapp myapp این ارور رو دریافت میکنم SyntaxError: Generator expression must be parenthesized من نمیدونم کجا رو باید پرانتز بذارم تا این راضی بشه؟ هم ورژن پایتنمو چند بار عوض کردم و هم جگو رو با ورژن های مختلف امتحان کردم ولی همش این ارور رو به من میده. باید چه کنم؟

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

nader
02 شهریور 1399
سلام کد python manage.py startapp myapp با خطا روبرو میشه متن خطا python can't open file 'manage.py': [errno2] no such file or directory

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

amir
31 اردیبهشت 1400
سلام در دایرکتوری که این دستور را وارد می کنید فایل manage.py وجود ندارد . باید یک سطح بالاتر بیاید و سپس دستور را تایپ کنید

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

ali
02 شهریور 1399
سلام کد python manage.py startapp myapp با خطا روبرو میشه متن خطا python :can't open file 'manage.py':[errno 2] no such file or directory لطفا کمکم کنید هر کاری میکنم درست نمیشه

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

جواد
08 آذر 1399
شما باید داخل فایل پروژه بشید بعدش این کد رو وارد کنید. یعنی آدرس داخل فایل پروژه رو به cmd بدید

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

xeins
29 شهریور 1398
سلام وقت بخیر . من به ی مشکل برخوردم دستور python manage.py ارور میده و وقتی dir رو وارد کردم این فایل رو نشون نداد در صورتی که فایل هست و من بش دسترسی دارم (نه از طریق cmd) ممنون میشم اگه راهنمایی کنید

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

آرمین
29 تیر 1398
تمامی ایمپورت ها توی urls.pyبا ارور مواجه شدن همچنین توی قسمت views.pyتمامی چیز ها خاکسترین طوری ک انگار کامنت شدن لطفا راهنمایی کنید

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

محمدحسین
19 فروردین 1398
سلام فک کنم یا من دارم بد کار می کنم یا توضیح مشکل داره!!!چون من عین دستورات شما میرم و میگه ماژول helloworld وجود ندارد!!!!!!!!!ممکنه راهنمایی کنید؟

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

روکسو
19 فروردین 1398
سلام وقت بخیر لطفا متن خطا را ارسال بفرمایید تا بررسی کنیم.

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

Ali
20 بهمن 1397
خیلی عالی.

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

مجی
20 آبان 1397
بسیار ساده و قابل فهم. تشکر از این آموزش شما

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