از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
مقدمه ای بر چارچوب Pyramid Python
سرفصلهای مطلب
معرفی
در این آموزش، روش استفاده از آن را یاد می گیریم هرم فریمورک در پایتون این یک چارچوب توسعه وب منبع باز است که از آن استفاده می کند Model-View-Controller (MVC) الگوی معماری و مبتنی است روی رابط دروازه وب سرور (WSGI). چارچوب Pyramid دارای افزودنی های مفید زیادی است.روی بسته هایی که توسعه وب را بسیار راحت تر می کند. برخی از جایگزین های محبوب دیگر برای توسعه وب در پایتون عبارتند از جانگو و فلاسک.
پیش نیازها
برای این آموزش باید دانش اولیه HTML را داشته باشید. اگر تجربه قبلی با آن ندارید، نگران نباشید، همچنان می توانید این آموزش را دنبال کنید و روش کار Pyramid را درک کنید، اما برای توسعه برنامه های وب دنیای واقعی باید به عقب برگردید و HTML را یاد بگیرید.
معماری
قبل از اینکه حرکت کنیم روی و کد را ببینید، اجازه دهید ابتدا WSGI و MVC را بفهمیم.
WSGI اساساً استانداردی است که روش تعامل یک برنامه وب مبتنی بر پایتون با سرور را تعریف می کند. حکومت می کند process ارسال درخواست به سرور و دریافت پاسخ از سرور.
MVC یک الگوی معماری است که برنامه شما را مدولار می کند. مدل شامل داده ها و منطق تجاری برنامه شما است، view اطلاعات مربوطه را به کاربر نمایش می دهد و کنترل کننده مسئول تعامل بین مدل و view است.
نقشه گوگل نمونه کاملی از معماری MVC است. هنگامی که از ویژگی مسیریابی در Google Maps استفاده می کنیم، مدل حاوی کد الگوریتمی است که کوتاه ترین مسیر را از مکان A تا مکان B پیدا می کند، نمای صفحه ای است که به شما نشان داده می شود که حاوی نقشه با برچسب مسیر است. و کنترلر حاوی کدی است که از کوتاه ترین مسیر یافت شده توسط مدل استفاده می کند و آن را از طریق view به کاربر نمایش می دهد. همچنین میتوانید کنترلکننده را بهعنوان کدی که درخواستی را از view (توسط کاربر) دریافت میکند، به مدل ارسال میکند تا پاسخی ایجاد کند و سپس پاسخ مدل را از طریق view به کاربر نمایش میدهد.
علاوه بر WSGI و MVC، دو اصطلاح دیگر وجود دارد که باید با آنها آشنا باشید که عبارتند از “routes” و “scripts”. مسیرها به وبسایت شما اجازه میدهند تا به صفحات وب مختلف تقسیم شود و هر صفحه وب عملکرد متفاوتی را انجام دهد.
بیایید فیس بوک را به عنوان مثال در نظر بگیریم. اگر می خواهید پیام های خود را مشاهده کنید، یک صفحه وب جدید با نمای متفاوت برای آن باز می شود، اگر می خواهید نمایه خود را مشاهده کنید، یک صفحه وب جدید برای آن باز می شود، اما همه آنها به وب سایت اصلی شما متصل هستند. این کار از طریق مسیرها انجام می شود. هر بار که کلیک می کنید روی یک دکمه یا پیوند، همانطور که توسط مسیرهای برنامه ما مشخص شده است، به یک صفحه وب جدید هدایت می شوید.
در مورد اسکریپت ها، آنها به سادگی تنظیمات پیکربندی برنامه ما را شامل می شوند و به مدیریت آن کمک می کنند.
وقتی یک برنامه وب پایه با استفاده از Pyramid ایجاد کنیم، در مورد همه این اصطلاحات بیشتر یاد خواهیم گرفت. بنابراین، بیایید شروع کنیم.
نصب و راه اندازی
هر زمان که ما یک برنامه وب را توسعه می دهیم که قرار است به صورت آنلاین مستقر شود، همیشه ایجاد یک محیط مجازی یک تمرین خوب در نظر گرفته می شود. محیط مجازی شامل تمام کتابخانه ها، یا فریمورک ها و تمام وابستگی های دیگری است که برای اجرای برنامه وب ضروری است. به این ترتیب، هنگامی که برنامه خود را روی یک سرور مستقر می کنید، می توانید به سادگی همه آن کتابخانه ها را دوباره نصب کنید روی سرور، تا برنامه شما به راحتی اجرا شود.
بیایید قبل از حرکت به جلو یک محیط مجازی ایجاد کنیم. ماژول محیط مجازی را با اجرای دستور زیر در خود نصب کنید terminal:
$ pip install virtualenv
برای تست موفقیت آمیز بودن نصب، دستور زیر را اجرا کنید:
$ virtualenv --version
اگر شماره نسخه چاپ شده را مشاهده کردید console سپس نصب با موفقیت انجام شد (یا virtualenv
قبلا نصب شده بود روی سیستم شما).
برای ایجاد یک محیط مجازی ابتدا به پوشه ای که می خواهید آن را ایجاد کنید بروید و سپس دستور زیر را اجرا کنید:
$ virtualenv myvenv
توجه داشته باشید: می توانید نام محیط مجازی خود را هر چیزی که می خواهید نام گذاری کنید. در اینجا ما از “myenv” فقط برای اهداف نمایشی استفاده می کنیم.
آخرین مرحله این است که محیط مجازی خود را فعال کنید. در مک، دستور زیر را اجرا کنید terminal:
$ source myvenv/bin/activate
در یک ماشین ویندوز، می توانید محیط را با دستور زیر فعال کنید:
'Installation folder'\myvenv\Scripts\activate.bat
اکنون که محیط مجازی خود را راه اندازی کرده اید، بیایید Pyramid را در آن نصب کنیم. ما استفاده خواهیم کرد pip مدیر بسته برای آن:
$ pip install pyramid
توجه داشته باشید: هنگامی که کار با برنامه تمام شد و می خواهید محیط مجازی خود را غیرفعال کنید، دستور زیر را در برنامه اجرا کنید terminal:
$ deactivate
تمرین کدنویسی
در این بخش، ما با کدگذاری یک برنامه اسکلت شروع میکنیم تا بفهمیم برنامههای Pyramid چگونه ساختار یافتهاند و چگونه در سطح پایه با هم ارتباط برقرار میکنند. پس از آن، روش ایجاد برنامه های کاربردی با چندین نمایش را خواهیم دید.
یک مثال ساده از Python Pyramid
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
def intro(request):
return Response('Hi, My name is Junaid Khalid')
def main():
with Configurator() as config:
config.add_route('intro', '/')
config.add_view(intro, route_name='intro')
application = config.make_wsgi_app()
server = make_server('0.0.0.0', 8000, application)
server.serve_forever()
main()
توجه داشته باشید: Configurator
ماژول برای اتصال یک نمای خاص به یک مسیر خاص استفاده می شود. برای مثال، روی فیس بوک، نمای «نمایه من» با نمای «فید خبری» متفاوت خواهد بود و هر دو دارای URL های متفاوتی نیز هستند. این دقیقاً همان کاری است که یک پیکربندی انجام می دهد. اتصال یک URL/مسیر خاص به یک نمای خاص.
سپس make_server
روش ها برای اجرای برنامه ما استفاده می شود روی یک سرور HTTP محلی روی دستگاه ما، با شماره پورت اختصاص داده شده.
این intro
تابع استفاده می شود process درخواست های دریافت شده از کاربر، process و پاسخ را به نما برگردانید. هر گونه پردازش درخواست قبل از ارسال پاسخ، می تواند در داخل این تابع انجام شود.
برای اجرای اپلیکیشن فوق روی به ایستگاه کاری خود بروید terminal و اجرا کنید.py فایلی که به تازگی ایجاد کردیم:
$ python3 intro.py
در مورد من، نام فایل مقدمه است.py، اما بسته به شما ممکن است متفاوت باشد روی چیزی که تصمیم گرفتی اسمش را بگذاری
سپس هر مرورگر وب را باز کنید روی کامپیوتر خود را، و به این آدرس بروید: http://localhost:8000
. شما باید یک صفحه وب با “سلام، نام من جنید خالد است” را ببینید که به روشی بسیار ناخوشایند از نظر زیبایی شناسی نوشته شده است. برای اینکه دلپذیرتر به نظر برسد، می توانید کد HTML را به عنوان پاسخ نیز برگردانید. برای یک مثال ساده، اجازه دهید تابع مقدمه را ویرایش کنیم:
def intro(request):
return Response('<h2 style="text-align: center; font-family: verdana; color: blue;">Hi, My name is Junaid Khalid.</h2>')
تابع مقدمه را با تابع بالا جایگزین کنید و اکنون خروجی را ببینید. خیلی بهتره، درسته؟ این فقط یک مثال بود. شما می توانید آن را بسیار بهتر کنید.
توجه داشته باشید: وقتی هر تغییری در کد ایجاد می کنید، سرور به طور خودکار آن را ثبت نمی کند. شما باید سرور را متوقف کنید و سپس آن را مجددا راه اندازی کنید تا تغییرات خود را اعمال کنید. برای انجام این کار، خود را باز کنید terminal جایی که سرور در حال اجراست و فشار دهید Control+C
، این کار سرور را خاتمه می دهد. سپس می توانید سرور خود را مانند همیشه راه اندازی مجدد کنید تا تغییرات را مشاهده کنید.
جداسازی و نمایش چند نما
در این بخش، چند نما دیگر اضافه می کنیم و همچنین نماهای خود را از فایل اصلی حذف می کنیم (یعنی ‘intro.py’ فایل)، و همه آنها را در یک فایل جداگانه جدید (‘all_views.py’). این کد ما را ماژولار می کند، آن را تمیزتر می کند، و همچنین به ما امکان می دهد تا نماهای جدید را راحت تر اضافه کنیم. خب بیا انجام بدیمش.
from pyramid.compat import escape
from pyramid.response import Response
from pyramid.view import view_config
@view_config(route_name='intro')
def home_page(request):
header = '<h2 style="text-align: center;">Home Page</h2>'
body = '<br><br><p style="text-align: center; font-family: verdana; color: blue;">Hi, My name is Junaid Khalid.</p>'
body += '<p style="text-align: center; font-family: verdana;"> This is my portfolio website.</p>'
footer = '<p style="text-align: center; font-family: verdana;">Checkout my <a href="/jobs">previous jobs</a>.</p>'
return Response(header + body + footer)
@view_config(route_name='jobs')
def job_history(request):
header = '<h2 style="text-align: center;">Job History</h2>'
job1 = '<p style="text-align: center; font-family: verdana;">Jr. Software Developer at XYZ</p>'
return Response(header + job1)
توجه داشته باشید: در سطح مبتدی، میتوانید کد HTML را با پیروی از استراتژی استفاده شده در بالا بنویسید، یعنی برچسبها را در متغیرهای مختلف اعلام کنید و به سادگی آنها را هنگام ارسال پاسخ به هم متصل کنید. در برخی مواقع شما احتمالاً می خواهید از یک موتور قالب استفاده کنید جینجا تا تولید HTML بسیار ساده تر شود.
برنامه ما هنوز اجرا نمی شود، باید مقدمه را ویرایش کنیم.py فایل نیز
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
def main():
with Configurator() as config:
config.add_route('intro', '/')
config.add_route('jobs', '/jobs')
config.scan('all_views')
application = config.make_wsgi_app()
server = make_server('0.0.0.0', 8000, application)
server.serve_forever()
main()
همانطور که می بینید، ما کد نمای قبلی خود را حذف کرده ایم. اگر همه این نماها را در یک فایل اعلام کرده بودیم، پرونده بسیار درهمتر به نظر میرسید. هر دو فایل در حال حاضر بسیار تمیز به نظر می رسند، و هر فایل اکنون یک هدف واحد را انجام می دهد. بیایید ببینیم برنامه وب ما در حال حاضر چگونه به نظر می رسد.
خروجی:
در تصویر بالا خانه خود را می بینیم page. در مسیر واقع شده استhttp://localhost:8000‘. انجام نمیدهد نگاه کن از نظر زیبایی بسیار دلپذیر است، اما همانطور که در ابتدای آموزش گفته شد، به هر حال هدف ما این نبود. اگر بخواهیم آن را زیبا جلوه دهیم، میتوانیم با استفاده از ویژگی سبک HTML یا CSS، استایل زیادی به آن اضافه کنیم یا از قالبهای Bootstrap استفاده کنیم.
در حال حرکت روی، همچنین می توانید لینکی را مشاهده کنید که به عنوان “کارهای قبلی” نامگذاری شده است. با کلیک بر روی آن به یک صفحه وب جدید با مسیری متفاوت میروید. خروجی آن را در تصویر بعدی خواهیم دید.
خروجی:
تصویر بالا مشاغل ما را نشان می دهد page. در مسیر واقع شده است http://localhost:8000/jobs
. ما این مسیر را در “معرفی” خود مشخص کردیم.py’ فایل. من فقط یک کار اضافه کرده ام تا به عنوان نمونه نشان دهم.
نتیجه
Pyramid یک چارچوب توسعه وب مبتنی بر پایتون برای ساخت برنامه های وب به راحتی است. در این آموزش یاد گرفتیم که چگونه Pyramid را در محیط مجازی نصب کنیم و با استفاده از Pyramid که اجرا می شود، یک وب اپلیکیشن اولیه بسازیم. روی یک سرور محلی ایجاد شده روی کامپیوتر ما
اگر میخواهید به جزئیات بیشتری بروید، به Pyramid’s مراجعه کنید مستندات – کاملاً استادانه و مبتدی پسند است.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-20 17:41:04