وب‌اپلیکیشن با استفاده از Python و Django

دوشنبه ۰۳ دی ۹۷ توسط تحریریه آرکادمی

python django

در این پست می‌خواهیم نحوه ساخت وب اپلیکیشن‌ها را با استفاده از پایتون و جانگو یاد بگیریم. برای توسعه‌ی بک-ِند وب، گزینه‌های زیادی وجود دارد، من جمله جاوا، PHP و#C تا GoLang و Ruby. پایتون نیز گزینه‌های زیادی برای پیاده سازی یک سرویسِ وب اپلیکیشن قدرتمند دارد. یکی از پرکاربردترین فریمورک های وب ، جانگو است.

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

  • پایتون و جانگو را نصب کنید
  • پروژه وب اپلیکیشن جانگو پایه را ایجاد کنید
  • یک اپلیکیشن داخل پروژه جانگو ایجاد کنید
  • دیتابیس اصلی و جداول ادمین را ایجاد کنید
  • اپلیکیشن وب را به صورت محلی (local) اجرا کنید

در نهایت، در یک پیاده‌سازی و توسعه وب ماژولار این کارها را  خواهیم کرد:

  • توسعه وب Front-end با قالب‌ها
  • انتشار و توسعه اپلیکیشن شما در Heroku

نصب جانگو

اگر پایتون روی سیستم شما نصب شده باشد، فقط باید با استفاده از pip نصب پکیج جانگو را اجرا کنید:

pip install Django

ساخت وب اپلیکیشن جانگو پایه

جانگو یک ابزار خط فرمان برای ساخت پروژه جانگو از ابتدا دارد. دستور اصلی این است:

django-admin

django-admin startproject webapp

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

cd webapp

در داخل این پوشه ، یک ساختار پروژه جانگو خواهید داشت:

├── manage.py
└── webapp
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py

علاوه بر startproject django-admin از دستورات مفید اضافه (پرکاربردترین دستورات با حروف پررنگ مشخص شده اند) پشتیبانی می‌کند:

 check
 compilemessages
 createcachetable
 dbshell
 diffsettings
 dumpdata
 flush
 inspectdb
 loaddata
 makemessages
 makemigrations
 migrate
 runserver
 sendtestemail
 shell
 showmigrations
 sqlflush
 sqlmigrate
 sqlsequencereset
 squashmigrations
 startapp
 startproject
 test
 testserver

مدیریت پروژه : manage.py

در پوشه اصلی یک فایل به نام manage.py ساخته شده است. این فایل اسکریپت مدیریت پروژه برای اپلیکیشن شماست.

python manage.py [command]

برای مدیریت پروژه دستورات زیادی وجود دارد (پرکاربردترین دستورات با حروف پررنگ مشخص شده) زمانی که python manage.py اجرا کنید می‌توانید تمام گزینه‌ها را ببینید (بدون پارامترهای اضافه)

[auth]
changepassword
createsuperuser

[contenttypes]
remove_stale_contenttypes

[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver

[sessions]
clearsessions

[staticfiles]
collectstatic
findstatic
runserver

اجرای اپلیکیشن برای اولین بار

بعد از ایجاد پروژه جانگو، می توانید اپلیکیشن پیش فرض را بدون کد اضافه اجرا کنید. دستور runserver را اجرا کنید.

python manage.py runserver

این دستور وب سرور محلی را در  http://localhost:8000 راه‌اندازی خواهد کرد. زمانی که این دستور را برای اولین بار اجرا کنید، احتمالا یک پیام هشدار دریافت خواهید کرد:

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.

November 05, 2018 - 22:27:59
Django version 2.1.3, using settings 'webapp.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

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

ایجاد جداول پیش فرض برای احراز هویت

پایتون دارای یک رابط مدیریت کاربر با ویژگی های کامل است. (django.contrib.admin) شما می توانید دیتابیس و جداول مورد نیاز برای پشتیبانی از احراز هویت کاربر بسازید . دستور migrate را اجرا کنید.

python manage.py migrate

این دستور دیتابیس SQLite را (db.sqlite3) ایجاد کرده و جداول را برای احراز هویت پشتیبانی می کند.

Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK

 

حالا می توانید به صفحه احراز هویت وب بعد از شروع مجدد وب سرور دسترسی داشته باشید:

python manage.py runserver

و مرورگرتان را برای رابط ادمین در http://localhost:8000/admin  نشانه گذاری کنید.

admin interface

ساخت کاربر ادمین (SuperUser)

می توانید دستور createsuperuser را برای ساخت یک حساب اولیه با امتیازات کامل به کار ببرید:

python manage.py createsuperuser

Username (leave blank to use 'user'): admin
Email address: admin@gmail.com
Password:
Password (again):
Superuser created successfully.

برای جلوگیری از هشدار در مورد امنیت رمز عبور ، باید یک رمزعبور معتبر- ایمن بدهید.

حالا می توانید این کاربر را برای لاگین به رابط ادمین در http://localhost:8000/admin: به کار ببرید:

secure pass

ایجاد یک اَپلیکیشن در پروژه تان

شما یک پروژه جانگو اصلی (webapp) ساخته‌اید. حالا می‌توانید یک اپلیکیشن داخل پروژه‌تان بسازید. هر اپلیکیشن، درست مانند یک ماژول اپلیکیشن مجزا در یک پروژه واحد است. دستور ایجاد یک اپلیکیشن جدید به صورت زیر است:

python manage.py startapp {appname}

که در آن {appname} نام اپلیکیشن است (python manage.py startappexample)

زمانی که این دستور را اجرا کنید یک پوشه جدید (example) همراه با پوشه پروژه (webapp) ایجاد می شود.

> example
> webapp
- manage.py

در پوشه اپلیکیشن می توانید مجموعه ای از فایل های مورد نیازتان برای پیکره بندی یک اپلیکیشن جانگو را ببینید

example/
├── __init__.py
├── admin.py
├── apps.py
├── migrations/
│ └── __init__.py
├── models.py
├── tests.py
└── views.py

ایجاد Viewها

در واقع شما فقط یک صفحه اصلی اولیه و رابط ادمین دارید. می توانید صفحه اولیه خودتان را ایجاد، یک view  اضافه و یک مسیر بسازید.  

ایجاد یک view

فایل views.py داخل پوشه وب اپلیکیشن‌تان (example/views.py در این مثال) را برای مدیریت درخواست های یک صفحه ایندکس ویرایش کنید:

from django.shortcuts import render
from
django.http import HttpResponse

def index(request):
return HttpResponse("<h1>Hello World</h1>")

 

این کد از تابع HttpResponse برای خروجی یک پیغام "Hello world" به مرورگر کلاینت استفاده می کند. تابع render در بخش بعدی استفاده خواهد شد.

حالا یک مسیر جدید در فایل urls.py از پوشه پروژه (webapp/urls.py) برای درخواست مستقیم به سایت ریشه به تابع ()index تان، بسازید.

from example import views

urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index)
]

خط اول views.py را از پوشه اپلیکیشن جاری (example) به عنوان شی views در زمینه جاری وارد می کند.

سپس می توانید یک مسیر (root path) جدید در urlpatterns برای نگاشت پاسخ به نتایج views.index مشخص کنید. (تابعviews.py ، ()index )

حالا زمانی که سرورتان را اجرا کنید (python manage.py runserver) ، می توانید صفحه اصلی تان را در http://localhost:8000مشاهده کنید.

سلام دنیا

این یک صفحه ساده است. در بخش بعدی می توانید یک قالب HTML کامل برای نشان دادن صفحه اصلی تان ایجاد کنید.

فایل settings.py 

هنگامی که فایل webapp/settings.py  را باز کنید تنظیمات متفاوتی برای پیکره بندی پروژه اصلی تان پیدا خواهید کرد. مهمترین آنها عبارتند از :

- ALLOWED_HOSTS: یک لیست از میزبان های مجاز که می توانند به اپلیکیشن شما متصل شوند. فعلا خالی نگهش می داریم.

- INSTALLED_APPS: یک لیست از ورودی هایی است که با اپلیکیشن شما بارگزاری خواهند شد. در این بخش می توانید یک آیتم PollsConfig   برای شی example/apps.py در اضافه کنید.

- INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘example.apps.ExampleConfig`, ]

- MIDDLEWARE : لیستی از میان افزارهایی است که با اپلیکیشن شما اجرا می شوند. یک میان افزار یک لایه خارجی از اپلیکیشن است برای پردازش اطلاعات دریافت شده توسط اپلیکیشن شما قبل از اینکه برای پردازش ، در دسترس باشد:

- سشن‌ها

- احراز هویت

- اعتبارسنجی توکن CSFR

- دیتابیس‌ها: لیستی از پایگاه داده ها با پارامترهای اتصال و پیکره بندی شان. در این پروژه یک دیتابیس SQLite استفاده شده است. پرکاربردترین ها عبارتند از :

django.db.backends.sqlite3django.db.backends.postgresqldjango.db.backends.mysql, و django.db.backends.oracle

 

نتیجه گیری

در این پُست ما با استفاده از دستورات زیر یک اپلیکیشن وب پایتون با جانگو ساختیم:

ایجاد پروژه وب سرور اصلی و شروع اجرای سرویس :

  • django-admin startproject webapp را اجرا کنید
  • برای رفتن به پوشه پروژه ، cd webapp را اجرا کنید
  • python manage.py migrate را اجرا کنید
  • python manage.py createsuperuser را اجرا کنید
  • در نهایت python manage.py runserver را اجرا کنید

یک اپلیکیشن داخل پروژه ایجاد کنید

  • برای ایجاد پوشه اپلیکیشن python manage.py startapp example را اجرا کنید
  • برای ایجاد یک تابع index() فایل example/views.py را ویرایش کنید
  • در webapp/urls.py یک مسیر جدید در urlpatterns،  اضافه کنید
  • برای افزودن (PollsConfig (example.apps.ExampleConfig اپلیکیشن، webapp/settings.py را تغییر دهید.

مثالی از پروژه را به عنوان رفرنس می‌توانید از لینک زیر ببینید:

https://github.com/fraigo/python-django-example


کلیدواژه: پایتون جنگو Python Django وب اپلیکیشن Web Application

منابع: medium.com

ارسال دیدگاه:
برای ارسال دیگاه باید به سیستم وارد شوید و یا ثبت نام کنید. ثبت نام چند لحظه بیشتر زمان شما را نمیگیرد.
مولف:
تحریریه آرکادمی
سردبیر آرکادمی
مشاهده‌ی پروفایل
آمار و مشخصات:
event
دوشنبه ۲۶ آذر ۹۷
public
arcademy.ir/+a345
favorite
۰ پسند
comment
۰ دیدگاه
group
۳۱۹ بازدیدکننده
visibility
۳۶۹ بازدید
رده های این مقاله: