ایجاد اپلیکیشن «نمونه کار» با استفاده از جنگو - معرفی ابزارها
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 23 دقیقه

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

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

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

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

شرح کلی پروژه

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

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

بعد از فرایند ثبت نام و ورود به وبسایت، برای هر کاربر لینکی ایجاد می‌شود که ed یا edit نام دارد و به کاربران این قابلیت را می‌دهد تا اطلاعات نمایشی مربوط به پروفایل خودشان را مدیریت کنند. در این صفحه کاربران از طریق یک سیستم احراز هویت امن، مدیریت می‌شوند و سطوح دسترسی‌شان تعیین می‌شود. اینگونه هر کاربر تنها در زمانی مجاز به استفاده از برگه ed است که وارد سیستم شده و مجوزهای لازم برای تغییر صفحه را داشته باشد. به این صورت دیگر کاربر x نمی‌تواند اطلاعات کاربر y را تغییر دهد.

در این سیستم برای هر کاربر مجوزهای دسترسی Add و Change در نظر گرفته شده، به همین دلیل می‌شود به سادگی بعد از فرایند ورود این دو عملیات را روی بانک اطلاعاتی انجام داد.

وجود یک کاربر ادمین که ما آن را SuperUser می‌نامیم نیز این کمک را می‌کند تا تمام کاربران بتوانند به سادگی از طریق پنل مدیریت، کنترل شوند. آنچه که من از آن نام می‌برم، وجود پروژه‌ای با دو پنل مدیریتی است. یک پنل مدیریتی که تمام کاربران به آن دسترسی دارند و می‌توانند از طریق آن اطلاعات خود را ویرایش کنند و یک پنل مدیریتی کامل‌تر که تنها یک کاربر به آن دسترسی دارد و می‌تواند تمام داده‌ها را مدیریت کند. این مدیریت شامل مجوزهای Add/Change/Delete می‌شود.

البته در کنار SuperUser ما کاربر دیگری تحت عنوان staff نیز داریم که سطح دسترسی پایین‌تری از SuperUser دارد اما مي‌تواند بر تمامی کاربران دیگر نظارت داشته باشد. در واقع staff نام یک گروه کاری است که بی‌نهایت کاربر را می‌توان در آن عضو کرد. این امکان توسط SuperUser پیاده‌سازی می‌شود اما خود SuperUser می‌تواند مجوزهای عملیاتی مختلف را به دیگر کاربران نیز بدهد.

تکنولوژی‌های استفاده شده

در ساخت این پروژه از تکنولوژی‌های زیر استفاده شده که در ادامه لیست زیر به تشریح هر کدام به صورت کامل پرداخته می‌شود:

۱- پایتون

۲- فریمورک جنگو

۳- بانک اطلاعاتی sqlite

۴- فریمورک بوت‌استرپ

۵. گیت

معرفی پایتون

داستان پایتون از اواخر سال ۱۹۸۲ میلادی آغاز می‌شود، سالی که آقای روسوم پس از پایان دانشگاه به عنوان یک برنامه‌نویس وارد تیم توسعه‌ زبان ABC در مرکز CWI واقع در آمستردام هلند می‌شود.  ABCیک زبان برنامه‌نویسی تفسیر‌شده (Interpreted) با اهداف آموزشی است که از اواخر دهه هفتاد میلادی، تحت پروژه‌ای در این مرکز آغاز شده بود. وی چهار یا پنج سال بعد، زمانی که از پروژه‌ زبان ABC نتیجه‌ مطلوب حاصل نمی‌گردد از آن خارج و به تیم توسعه‌ سیستم عامل آمیب می‌پیوندد. این موضوع از آن جهت دارای اهمیت است که در هنگام کار بر روی این سیستم عامل بود که آقای روسوم به فکر ایجاد یک زبان اسکریپتی (Scripting Language) جدید می‌افتد.

در دسامبر سال ۱۹۸۹ میلادی، تعطیلات کریسمس فرصتی می‌شود تا آقای روسوم به ایده سرگرم کننده‌ خود بپردازد. البته پس از آن نیز زمان زیادی از وقت‌های آزاد خود را برای پیشرفت پروژه‌ای که «پایتون» نامیده بود صرف می‌کند. در این مسیر، تجربه‌ کار بر روی زبان ABC و همینطور مطالعات وی بر روی زبان‌ Modula-3 نقش فراوانی داشته است، در‌ واقع او یک نسخه‌ شخصی از بخش‌های مورد علاقه‌ خود از ABC ایجاد نمود. او یک ماشین مجازی ساده، یک تجزیه‌کننده ساده و یک سیستم زمان‌اجرا (Runtime System) ساده ایجاد کرد؛ یک زبان با سینتکس اولیه که از تو‌رفتگی (Indentation) برای بلاک‌بندی بهره می‌برد و از انواع داده دیکشنری، لیست، رشته و اعداد پشتیبانی می‌کرد و بر خلاف ABC توسعه‌پذیر می‌بود.

یک سال بعد آقای روسوم از پایتون در پروژه‌ آمیب استفاده می‌کند؛ نتیجه‌ مطلوب و نیز بازخورد آن در بین همکارانش موجب می‌شود تا وی به بسیاری از بهینه سازی‌های اولیه در پایتون اقدام نماید. این روند ادامه می‌یابد تا اینکه سرانجام در ماه دوم از سال ۱۹۹۱ میلادی این زبان را با نسخه 0.9 و تحت پروانه‌ای مشابه با پروانه‌ MIT از طریق یکی از گروه‌های خبری با عنوان alt.sources منتشر می‌سازد که با استقبال بالایی نیز رو به رو می‌گردد.

منشا انتخاب نام پایتون توسط آقای روسوم برخلاف تصور عمومی یا آنچه که از لوگوی آن مشاهده می‌شود به نوع خاصی از مار مربوط نیست!؛ در حقیقت این نام برگرفته از یک سریال کمدی تولید انگلستان با عنوان ”Monty Python’s Flying Circus“ می‌باشد که پخش اصلی آن در طی سال‌های ۱۹۶۹ تا ۱۹۷۴ میلادی از شبکه‌ BBC One بوده است.

توصیفی کوتاه

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

زبان برنامه‌نویسی پایتون همانطور که اشاره شد در سال ۱۹۹۱ میلادی توسط آقای روسوم خلق شده و توسعه‌ آن نیز زیر نظر مستقیم اوست. آقای روسوم زاده‌ سال ۱۹۵۶ میلادی می‌باشد و هم اکنون (سال ۲۰۱۵) در شرکت Dropbox مشغول به کار است.

توسعه‌ پایتون با عصر توسعه و محبوبیت زبان‌های متن باز دیگری همچونTcl ، پرل و روبی همزمان بوده که این امر به پیشرفت و توسعه‌ آن کمک زیادی کرده است.

پایتون یک جامعه‌ کاربری بسیار بزرگ و پویا به همراه خود دارد که عامل پیشرفت و توسعه‌ بسیار مهمی برای هر زبان برنامه‌نویسی به شمار می‌رود. این جامعه هر ساله با برپایی همایش‌های گوناگون در سراسر جهان به تبادل آموخته‌ها می‌پردازد. یکی از رایج‌ترین این همایش‌ها PyCon (پای‌کان) می‌باشد که خوشبختانه ‌در ایران نیز برگزار می‌شود.

این زبان تاکنون توسط شرکت یا سازمان‌های مطرح زیادی مورد استفاده قرار گرفته و در برنامه‌های کاربردی زیادی نیز از آن استفاده شده است که از جمله این موارد می‌توان به: گوگل، ناسا، اینستاگرام، یوتیوب و رِدایت اشاره کرد.

یک نکته مهم در مورد زبان برنامه‌نویسی پایتون، انواع پیاده‌سازی‌ (Implementation) آن است. تا‌کنون از این زبان پیاده‌سازی‌های گوناگون و با اهداف متفاوتی توسعه یافته است که از این بین می‌توان به  Jython(خاص ماشین مجازی جاوا)، IronPython  (خاص چارچوب NET. مایکروسافت) و البته CPython اشاره نمود.

CPython  (سی‌پایتون) پیاده‌سازی استاندارد و اصلی زبان پایتون می‌باشد که با استفاده از زبان برنامه‌نویسی C توسعه می‌یابد. توسط CPython می‌توانید علاوه بر کتابخانه‌ پایتون از کتابخانه‌‌ زبان‌های C و Cpp نیز بهره بگیرید.

توجه داشته باشید، پایتون (Python) نام یک زبان برنامه‌نویسی است و CPython (یا دیگر پیاده‌سازی‌‌های زبان پایتون) در واقع برنامه‌ایست که توسط آن می‌توان سورس کد یک برنامه به زبان پایتون را اجرا نمود. به بیانی دیگر CPython یک پردازنده‌ برای زبان پایتون است.

ویژگی‌ها

پایتون یک زبان برنامه‌نویسی رایگان، متن باز (Open Source) و با بیانی کامل‌تر، آزاد است که هم‌‌اکنون (یعنی از نسخه‌ 2.1 و جدیدتر) پروانه‌ آن توسط «بنیاد نرم‌افزار پایتون»  PSF اداره می‌گردد. پروانه‌ پایتون سازگار با پروانه‌ GPL3 است، با این حال به برنامه‌نویس این اجازه را می‌دهد که بتواند برنامه‌ای با سورس بسته (Closed Source) تولید نماید.

زبان پایتون از اجزای بسته نرم‌افزاری LAMP نیز به شمار می‌رود. این بسته عبارت است از: لینوکس، آپاچی، مای‌اس‌کیو‌ال/ماریادی‌بی و پرل/پی‌اچ‌پی/پایتون.

این زبان خیلی پیش‌تر از آنکه حتی Eric Raymond و Bruce Perens از Open Source صحبت کنند، متن باز بوده است.

پایتون یک زبان برنامه‌نویسی همه منظوره (General-Purpose) است به این معنی که می‌توان از آن در توسعه طیف گسترده‌ای از انواع برنامه‌ها در حوزه‌های نرم‌افزاری گوناگون بهره برد؛ از جمله در توسعه برنامه‌های تحت وب و برنامه‌هایی با قابلیت «واسط گرافیکی کاربر».

پایتون یک زبان برنامه‌نویسی به همراه مجموعه‌ بزرگی از قابلیت‌های از پیش آماده و قابل حمل است که به عنوان کتابخانه‌ استاندارد آن شناخته می‌شود. همچنین در کنار این کتابخانه‌ می‌توان از طیف بسیار وسیعی از کتابخانه‌های شخص ثالث (Third-Party) پایتون نیز بهره برد. کتابخانه‌های شخص ثالث ابزارهای مفیدی را در امور فروانی همچون: برنامه‌نویسی علمی، پردازش زبان‌های طبیعی، ارتباط درگاه سریال، ایجاد بازی، هوش مصنوعی، ایجاد وب سایت، پردازش تصویر، واسط گرافیکی کاربر، کار با اسناد، رمزنگاری و بسیاری دیگر... که مدام در حال توسعه هستند و بر تعداد و تنوع آن‌ها نیز افزوده می‌شود را در اختیار برنامه‌نویسان پایتون قرار می‌دهند.

پایتون یک زبان برنامه‌نویسی پویا (Dynamic) بوده و نیز از قابلیت مدیریت خودکار حافظه برخوردار است. این زبان شباهت‌هایی با زبان‌های برنامه‌نویسی پویا دارد. در این نوع زبان‌ها بر‌خلاف زبان‌های ایستا (Static) مانند جاوا، سی‌پلاس‌پلاس و سی نیازی به تعریف صریح نوع متغیرها نیست و همچنین نوع متغیر در طول برنامه قابل تغییر است. در زبان‌های پویا متغیرها از خود نوعی ندارند و تصمیم گیری برای تخصیص نوع در «زمان اجرا»(RunTime) انجام می‌پذیرد.

بر خلاف زبان C، در پایتون اختصاص و آزاد‌سازی حافظه (Memory) به صورت خودکار انجام می‌شود. پایتون برای آزاد‌سازی حافظه از دو روش «شمارش ارجاع» و «زباله روبی» بهره می‌گیرد. البته فراموش نشود که صحبت در مورد پیاده‌سازی CPython است.

پایتون یک زبان برنامه‌نویسی سطح بالا (High-Level) است که به وسیله‌ آن عمل برنامه‌نویسی به آسانی و با سرعتی بالا انجام می‌پذیرد و بر‌خلاف زبان برنامه‌نویسی سطح پایینی (Low-Level) مانند Assembly، برنامه‌نویس را درگیر مسایل خاص موجود در این سطح به مانند کار با ثبات‌ها (Registers)، آدرس‌های حافظه و غیره... نمی‌سازد.

پایتون یک زبان برنامه‌نویسی چند‌ الگویی (Multi-Paradigm) است و برنامه‌نویس را مجبور به رعایت الگوی خاصی نمی‌کند. این زبان از الگوهای: دستوری (Imperative) یا رویه‌ای (Procedural)، تابعی (Functional) و شی‌گرایی (Object-Oriented) پشتیبانی می‌کند؛ البته همانظور که گفته شد نمی‌توان پایتون را به صورت خالص (Pure) متعلق به هر یک از این الگوها دانست.

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

معرفی فریمورک جنگو

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

ابتدای کار بسیار مهم است که بدانید چگونه یک وبسایت ساختاردهی می‌شود. یک وبسایت را به صورت کلی می‌توان به دو بخش تقسیم کرد: فرانت-اند و بک‌-اند. فرانت‌-‌اند همان بخشی است که مشتری یا بازدید کننده با آن به صورت مستقیم تعامل دارد، از آن به عنوان Client-Side نیز نام برده می‌شود. بک‌-اند هم جایی است که برنامه‌نویسی Server-Side در آن انجام می‌شود. به صورت کلی این قسمت وظیفه دارد تا محتوای یک برگه را از طریق سرور و بانک اطلاعاتی آماده کند.

یک راه دیگر برای فکر کردن در رابطه با این دو بخش، ماشین‌هایی است که هر کدام از این موارد را میزبانی می‌کند و کد روی آن اجرا می‌شود. کدهای قسمت Client-Side روی دستگاه مشتری و مرورگر وی اجرا می‌شود، این در حالی‌ست که کدهای Server-Side روی یک سرور اجرا می‌شود.

حال که ما تفاوت اصلی این دو را می‌دانیم، می‌توانیم به زبان‌هایی که با استفاده از آن‌ها برای هر بخش از این دو مورد اپلیکیشن طراحی می‌کنیم، نگاهی بیاندازیم. برای بخش کلاینت یا فرانت‌-اند ما از HTML،CSS  و جاوااسکریپت برای نمایش اطلاعات و تعامل با آن‌ها استفاده می‌کنیم.

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

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

چرا Django (جنگو)؟

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

جنگو گزینه بسیار خوبی برای یادگیری برنامه‌نویسی سمت سرور است. بیایید با همدیگر نگاهی به مزیت‌های مهم جانگو بیاندازیم.

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

مقیاس‌پذیر- همانطور که به صورت خلاصه‌وار در بالا اشاره کردیم، جانگو می‌تواند به درخواست‌های متفاوتی پاسخگو باشد. برخی از پرترافیک‌ترین پلتفرم‌های حال حاضر به همین دلیل از پایتون استفاده می‌کنند. دو نمونه بسیار مشهور از این پلتفرم‌ها، اینستاگرام و پینترس است. سایت‌هایی مانند این می‌توانند به ۵۰ هزار بازدید در ثانیه پاسخ‌گو باشند.

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

امن- با کمک جانگو، توسعه‌هندگان قابلیت این را خواهند داشت که بتوانند بسیاری از مشکلات امنیتی را در یک اپلیکیشن حذف کنند. جانگو به صورتی طراحی شده که بتواند بهترین کارها را برای برقراری امنیت وبسایت انجام دهد. برای مثال، جانگو راه امنی را برای پیاده‌سازی مدیریت کاربران با استفاده از نام کاربری و پسورد‌شان پیاده‌سازی کرده است. این متد از اشتباهاتی مانند قرار دادن اطلاعات یک نشست در کوکی‌ها (یکی از آسیب‌پذیری‌ها) جلوگیری می‌کند.

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

قابلیت نگه‌داری- کدهای جانگو با استفاده از قواعد و الگو‌های درست طراحی نوشته شده است، بنابراین شما قادر به ایجاد کدهایی با قابلیت نگه‌داری و استفاده‌پذیری دوباره بالا را دارید. یکی از قواعدی که در جانگو پیاده‌سازی شده DRY یا Don't Repeat Yourself نام دارد. با استفاده از این قاعده شما نیازی ندارید  که کارهای تکراری را انجام دهید و این موضوع حجم کدهای‌تان را بسیار کاهش می‌دهد.

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

از آن‌جایی که جانگو نیز بخشی از تکنولوژی است، پس بدون نقص نیست و در آن معایبی نیز وجود دارد. یکی از مشکلات اصلی که با جانگو وجود دارد این است که پیشرفت و تکامل کندی دارد. ممکن است در فرایند استفاده از آن متوجه شوید که برخی از امکانات آن منسوخ شده است. یک مثال از این موضوع می‌تواند استفاده جانگو از ORM در زمان تبدیل کوئری‌های پیچیده باشد. این مورد قبل از SQLAlchemy ایجاد شده و حال باید گفت که موارد دیگری وجود دارد که از چنین تکنولوژی ارتقایافته‌تر است. دلیل آن نیز این است که ORM انعطاف‌پذیری کمتری  دارد، این موضوع از مبتنی بر الگوی Active Record بودن نشئت می‌گیرد. این در حالی‌ست که SQLAlchemy از الگوی بهتری به نام Unit Record استفاده می‌کند.

معرفی بانک اطلاعاتی Sqlite

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

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

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

SQLite نرم‌افزاری با مجوز استفاده Public Domain است. به این معنی که حق مالکیتی ندارد و هر فرد یا سازمانی می‌تواند بدون هیچ محدودیتی از آن به هر شکلی استفاده کند.

کاربرد SQLite

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

برخی از سیستم‌های مدیریت محتوا مانند دروپال، گزینه‌ی کاربرد SQLite برای طراحی سایت را در اختیار برنامه‌نویسان و صاحبان سایت قرار می‌دهند.

بسیاری از نرم‌افزارهای شناخته‌شده در دنیا مانند موزیلا فایرفاکس، گوگل کروم، ویندوز ۱۰، اسکایپ و دراپ‌باکس برای نگهداری بخشی از اطلاعات خود از SQLite استفاده می‌کنند.

مدیریت آسان

SQLite به دلیل استفاده از سیستم فایلی، نیازی به تنظیمات پیچیده و اساسی مانند بسیاری از DBMSهای دیگر ندارد. کافی است فایل پایگاه داده را در کنار نرم‌افزار قرار دهید و از آن استفاده کنید.

تقریبا تمامی زبان‌های برنامه‌نویسی از جمله php، C، Java، و Microsoft.NET به صورت مستقیم یا با استفاده از کتابخانه‌های جانبی امکانات ذخیره و بازیابی اطلاعات در جداول SQLite را برای برنامه‌نویسان فراهم می‌کنند.

معرفی بوت‌استرپ

Bootstrap مجموعه ای از ابزارهای رایگان برای ایجاد صفحات وب و نرم افزارهای تحت وب است که شامل دستورات HTML، CSS و توابع جاوا اسکریپت جهت تولید و نمایش فرم ها، دکمه ها، تب ها، ستون ها و سایر المان های مورد نیاز طراحی وب می باشد.

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

در اگوست سال 2011، توییتر Bootstrap را بصورت متن باز و رایگان به عنوان یک فریم ورک طراحی وب سایت در اختیار دیگران قرارداد و در فوریه 2012 به محبوب ترین پروژه در سایت  Github تبدیل شده بود.

خلاصه بخش اول

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

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
3.5 از 2 رای

/@arastoo
ارسطو عباسی
کارشناس تولید و بهینه‌سازی محتوا

کارشناس ارشد تولید و بهینه‌سازی محتوا و تکنیکال رایتینگ - https://arastoo.net

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید