وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

نگاهی کوتاه به توسعه وب در پایتون

0 3
زمان لازم برای مطالعه: 5 دقیقه


معرفی

از سال 2003، پایتون در بین 10 زبان برنامه نویسی برتر برای یادگیری رتبه بندی شده است و رتبه آن از آن زمان تاکنون به طور مداوم در حال بهبود بوده است. با توجه به الف آمارپایتون یکی از 5 زبان برتر برای یادگیری در سال 2019 است و به دلیل سادگی، انعطاف پذیری، استحکام، سهولت استفاده، سازگاری، سرعت و تطبیق پذیری آن به بخشی ضروری از جامعه برنامه نویسی تبدیل شده است. علاوه بر این، غول های فناوری مانند اینستاگرام، اسپاتیفای و گوگل، حداقل تا حدی، معماری خود را در پایتون قرار می دهند.

به طور خلاصه، پایتون با ظهور سیلیکون ولی و پوستر وال استریت به شخصیت اصلی دنیای برنامه نویسی و تجارت تبدیل شده است: فین تک. این دلایل زیادی هستنداما پایتون امنیت و مقیاس‌پذیری مورد نظر روند رویکرد اول دیجیتال را ارائه می‌دهد که بخش قابل توجهی از بخش‌های تجاری و مالی در نظر گرفته شده است.

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

توسعه وب با استفاده از پایتون

پایتون از طریق فریمورک های متعدد خود چیزی را برای همه ارائه می دهد. یک چارچوب مجموعه ای از بسته ها و ماژول ها است که یک انتزاع یا عملکرد عمومی را ارائه می دهد که می تواند به طور انتخابی برای ایجاد نرم افزار خاص برنامه تغییر کند.

اما چگونه می توان فهمید که کدام چارچوب وب برای شما مناسب است؟ برای برنامه های کاربردی وب تمام عیار، جانگو و هرم راهی برای رفتن هستند. برای کنترل و تجسم بهتر یا نمونه سازی یک برنامه، Web2py یا فلاسک ممکن است چیزی برای ارائه به پروژه شما داشته باشد. CheeryPy برای راه حل های ساده و مینیمالیستی ضروری است. گردباد 10000 یا بیشتر اتصال همزمان به برنامه شما را در همان زمان انجام می دهد خط تیره انتخاب مناسبی برای کاربردهای تحلیلی است.

در این مقاله، مروری کوتاه بر سه مورد از محبوب‌ترین انتخاب‌ها توسط توسعه‌دهندگان و شرکت‌های برنامه‌نویسی مانند جنگو، Pyramid و Flask ارائه می‌کنیم. پس از بررسی کلی، ما محبوب ترین فریم ورک، جنگو را در عمل با استفاده از یک سیستم ورود مثال نشان خواهیم داد.

جانگو

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

فلسفه DRY (خودت را تکرار نکن) نه تنها امکان استفاده مجدد از کد را فراهم می کند، بلکه باعث ترویج آن نیز می شود و زمان کدنویسی را به نصف کاهش می دهد. علاوه بر این، معماری ماژولار/جداشده آن امکان اصلاح یکپارچه مؤلفه‌های کد را فراهم می‌کند و به شما این امکان را می‌دهد تا با کم و یا بدون هیچ تلاشی، مؤلفه‌ها را تا جایی که نیاز دارید اضافه یا حذف کنید.

جنگو همچنین دارای چیزی به نام ORM (نگاشت شی-رابطه ای) است که نه تنها با بسیاری از پایگاه های داده محبوب مانند SQL یا Oracle سازگاری بالایی دارد، بلکه به آن اجازه می دهد با چندین پایگاه داده به طور همزمان کار کند.

بالاخره جنگو هست سئو (بهینه سازی موتور جستجو) دوستانه. به عنوان مثال، اجازه می دهد تا کاهش page زمان بارگذاری از طریق تکنیک‌ها/ویژگی‌هایی مانند کش کردن قالب‌ها و فشرده‌سازی جاوا اسکریپت.

هرم

این چارچوب خود را به عنوان “نه خیلی کوچک، نه خیلی بزرگ، درست” تعریف می کند. Pyramid یک چارچوب متمرکز بر اتمام است که توانایی شروع کوچک را دارد و به شما این امکان را می دهد که یک پایه محکم برای راه حل خود کدنویسی کنید و سپس در صورت نیاز آن را افزایش دهید. از نظر سازگاری با برنامه های کوچک و بزرگ شبیه جنگو است، اما در پیچیدگی خود را از جنگو متمایز می کند.

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

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

فلاسک

در حالی که Pyramid و Django فلسفه اصلی یکسانی دارند، Flask به سمت دیگری می رود. اگر هدف نهایی چیزی ساده، قابل مدیریت و شخصی سازی است، پیشنهاد می کنم همیشه از Flask به جای استفاده از اسب های قدرت بیش از حد مانند جنگو استفاده کنید. فلاسک به شدت مبتنی است روی قالب Jinja 2 و Werkzeug جعبه ابزار WSGI (رابط دروازه وب سرور).

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

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

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

نصب جنگو

برای این مثال، PIP ماژول باید نصب شود پس از انجام آن، جنگو قابل نصب است و یک پروژه جدید می تواند به صورت زیر ایجاد شود:

$ python3 -m venv ~/.virtualenvs/dProject 
$ source ~/.virtualenvs/dProject/bin/activate 
(dProject) $ pip install django 
(dProject) $ django-admin.py startproject LoginProject_D 
(dProject) $ ./manage.py migrate 
(dProject) $ ./manage.py runserver 
(dProject) $ ./manage.py startapp dProject 

پس از انجام این کار، پروژه را می توان در یک مرورگر از طریق ” پیش نمایش کردhttp://127.0.0.1:8000” آدرس. صفحه خوش آمد گویی جنگو در مرورگر بارگیری می شود که نشان می دهد نصب با موفقیت انجام شده است.

برنامه احراز هویت جنگو

هنگامی که یک پروژه ایجاد می شود، جنگو به طور پیش فرض برنامه “auth” را نصب می کند. این را می توان با بررسی فایل تایید کرد settings.py، که به طور خودکار با پروژه جدید در بخش “INSTALLED_APPS” به شرح زیر ایجاد می شود:

INSTALLED_APPS = (
    …
    'django.contrib.admin',
    'django.contrib.auth', 
   …
)

Django-auth، یا django.contrib.auth، فریمورک جنگو است سیستم احراز هویت داخلیو شامل مدل های پیش فرض آن است.

برای استفاده از برنامه “auth” باید آن را به فایل سطح پروژه اضافه کنیم urls.py:


from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_views 


urlpatterns = (
    url(r'^login/$', auth_views.login, name='login'),
    url(r'^logout/$', auth_views.logout, name='logout'),
    url(r'^admin/', admin.site.urls),
    path('dProject/', include('django.contrib.auth.urls')),
)

برنامه “auth” URL های زیر را در اختیار ما قرار می دهد که هر کدام با نماهای “aut” مرتبط هستند و به ما امکان می دهد به سادگی با ایجاد الگوهای مشاهده آنها از آنها استفاده کنیم:

dProject/login/ (name='login')
dProject/logout/ (name='logout')
dProject/password_change/ (name='password_change')
dProject/password_change/done/ (name='password_change_done')
dProject/password_reset/ (name='password_reset')
dProject/password_reset/done/ (name='password_reset_done')
dProject/reset/<uidb64>/<token>/ (name='password_reset_confirm')
dProject/reset/done/ (name='password_reset_complete')

این django.contrib.auth.views.login view ایجاد خواهد کرد registration/login.html قالب به صورت پیش فرض این یک پوشه به نام REGISTRATION با یک ایجاد می کند login.html قالب داخل بلوک کد زیر یک الگوی ورود اولیه است که می توان از آن استفاده کرد:

{% extends 'base.html' %}

{% block title %}Login{% endblock %}

{% block content %}
  <h2>Login</h2>
  <form method="post"> 
    {% csrf_token %} 
    {{ form.as_p }} 
    <button type="submit">Login</button> 
  </form>
{% endblock %}

در نهایت، پروژه را طوری تنظیم کردیم که به دنبال پوشه “templates” از طریق settings.py فایل، به روز رسانی DIRS:

TEMPLATES = (
    {
        ...
        'DIRS': (os.path.join(BASE_DIR, 'templates')),
        ...
    },
)

Voilà! یک ورود ساده page که می تواند به درستی یک کاربر را از طریق اعتبارسنجی نام کاربری و رمز عبور احراز هویت کند.

نتیجه

پایتون به دلیل قابلیت های ایجاد وب سایت پویا به طور گسترده برای برنامه نویسی سمت سرور استفاده شده است. این زبان به طور گسترده برای نمونه سازی سریع و ساخت برنامه های وب بسیار مقیاس پذیر توسط رهبران فناوری مانند گوگل و حتی ناسا استفاده می شود!

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

علاوه بر این، این چارچوب‌های پایتون تلاش توسعه را از طریق ارائه انواع عملکردهای داخلی کاهش می‌دهند. تنها چالش این است که از کدام یک استفاده کنیم، متناسب با نیازهای خاص برای نتایج بهتر.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-27 00:07:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید