web2py

Web2py هو إطار عمل مفتوح المصدر لتطبيقات الويب، مكتوب بلغة البرمجة بايثون . يُمكّن Web2py مطوري الويب من برمجة محتوى الويب الديناميكي باستخدام بايثون . صُمم Web2py للمساعدة في تقليل مهام تطوير الويب الشاقة، مثل إنشاء نماذج الويب من الصفر، مع العلم أنه يُمكن لمطور الويب إنشاء نموذج من الصفر إذا لزم الأمر. [ 2 ]

صُممت Web2py في الأصل كأداة تعليمية مع التركيز على سهولة الاستخدام والنشر . لذلك، لا تحتوي على أي ملفات تهيئة على مستوى المشروع. استُلهم تصميم Web2py من إطاري عمل Ruby on Rails و Django . ومثل هذين الإطارين، تركز Web2py على التطوير السريع ، وتُفضل اتباع أسلوب الاتفاقيات على أسلوب التهيئة، وتتبع نمطًا معماريًا قائمًا على نموذج-عرض-متحكم (MVC) .

ملخص

يُعد Web2py إطار عمل متكاملًا ، حيث يحتوي على مكونات مدمجة لجميع الوظائف الرئيسية، بما في ذلك:

يشجع موقع Web2py ممارسات هندسة البرمجيات السليمة مثل

يستخدم Web2py بروتوكول WSGI ، وهو بروتوكول موجه للغة بايثون للتواصل بين خادم الويب وتطبيقات الويب. كما يوفر معالجات لبروتوكولي CGI و FastCGI ، ويتضمن خادم WSGI متعدد الخيوط Rocket [ 6 ] الذي يدعم بروتوكول SSL .

السمات المميزة

بيئة تطوير متكاملة قائمة على الويب (IDE)

يمكن تنفيذ جميع عمليات التطوير والتصحيح والاختبار والصيانة وإدارة قواعد البيانات عن بُعد (اختياريًا) دون الحاجة إلى أدوات خارجية، وذلك عبر واجهة ويب، وهي تطبيق web2py بحد ذاته. كما يُمكن إجراء عمليات التدويل (إضافة اللغات وكتابة الترجمات) من خلال بيئة التطوير المتكاملة هذه . يحتوي كل تطبيق على واجهة إدارة قواعد بيانات مُولّدة تلقائيًا، على غرار Django . وتتضمن بيئة التطوير المتكاملة أيضًا اختبارات عبر الويب.

يمكن أيضًا إنشاء التطبيقات من سطر الأوامر أو تطويرها باستخدام بيئات تطوير متكاملة أخرى. خيارات إضافية لتصحيح الأخطاء: [ 7 ]

  • تتيح بيئة تطوير Wing IDE تصحيح الأخطاء الرسومية لتطبيقات web2py [ 8 ] أثناء تفاعلك معها من متصفح الويب الخاص بك، يمكنك فحص وتعديل المتغيرات، وإجراء استدعاءات الوظائف وما إلى ذلك.
  • يدعم Eclipse / PyDev - مع إضافة Aptana PyDev - تقنية web2py أيضًا. [ 9 ] [ 10 ]
  • مصحح الأخطاء القابل للتوسيع pdb هو وحدة نمطية من مكتبة بايثون القياسية.
  • باستخدام مصحح الأخطاء Winpdb مفتوح المصدر والمستقل عن النظام الأساسي، يمكن إجراء تصحيح الأخطاء عن بعد [ 11 ] عبر بروتوكول TCP/IP ، من خلال اتصال مشفر. [ 12 ]

يبدو برنامج "Hello World" باستخدام web2py في أبسط صوره (صفحة ويب بسيطة [ 13 ] بدون قالب) كما يلي:

def hello (): return 'Hello World'

يتضمن Web2py لغة قوالب مبنية بالكامل على لغة بايثون ، بدون أي متطلبات للمسافات البادئة ، ونموذج كائن مستند ( DOM ) من جانب الخادم . يعمل نظام القوالب بدون Web2py. [ 14 ] يمكن تحويل قوالب Joomla 1.x إلى تخطيطات Web2py. [ 15 ]

يتضمن Web2py أيضًا مكتبتين للعلامات: مرشح markdown2 لتحويل النص إلى HTML، والذي يحول علامات Markdown إلى HTML أثناء التشغيل ؛ و markmin المستوحى من markdown ولكنه يدعم الجداول وفيديو/صوت html5 وبروتوكول oembed.

يستخدم المتحكم الذي لا يحتوي على واجهة عرض تلقائيًا واجهة عرض عامة لعرض المتغيرات التي يُرجعها المتحكم، مما يُتيح تطوير منطق العمل للتطبيق قبل كتابة HTML. مثال "Hello World" باستخدام قالب افتراضي:

دالة hello (): تُرجع قاموسًا يحتوي على كلمة greeting = 'Hello World '

يتم عرض مخرجات الدالة dict() لأي إجراء تلقائيًا بتنسيق HTML إذا تم طلب الصفحة بامتداد .html، وبتنسيق JSON إذا تم طلبها بامتداد .json، وبتنسيق XML إذا تم طلبها بامتداد .xml. يدعم هذا النظام بروتوكولات أخرى مثل jsonp وrss وics وخرائط جوجل، وغيرها، وهو قابل للتوسيع.

إليك مثال برمجي أكثر تعقيدًا يُعرّف جدولًا، ويعرض شبكة للمستخدمين المسجلين:

db.define_table ( 'thing' , Field ( 'name ' , notnull = True ) )@ auth.requires_login ( ) def hello ( ) : return dict ( grid = SQLFORM.grid ( db.thing ) )

نظام التذاكر

يأتي كل تطبيق من تطبيقات web2py مزودًا بنظام تذاكر :

  • في حال حدوث خطأ، يتم تسجيله وإصدار تذكرة دعم للمستخدم. وهذا يسمح بتتبع الأخطاء.
  • لا يمكن الوصول إلى الأخطاء وشفرة المصدر إلا من قِبل المسؤول، الذي يستطيع البحث عن الأخطاء واسترجاعها حسب التاريخ أو عنوان IP الخاص بالعميل. ولا يمكن لأي خطأ أن يؤدي إلى كشف الشفرة للمستخدمين.

كرون محمول

كرون هي آلية لإنشاء وتشغيل المهام المتكررة في الخلفية. تبحث عن ملف crontab خاص بالتطبيق بتنسيق crontab القياسي. تتوفر ثلاثة أوضاع تشغيل:

  • كرون البرمجي: يتم فحص إجراءات كرون بعد عرض محتوى صفحة الويب، ولا يضمن دقة التنفيذ. مخصص لتثبيتات Apache CGI/WSGI غير المميزة.
  • cron المُؤتمت: يتم تشغيل سلسلة cron عند بدء تشغيل web2py. لنظام التشغيل Windows وتثبيتات web2py المستقلة/Rocket.
  • نظام cron: يتم استدعاء وظائف cron قسرًا من سطر الأوامر ، عادةً من ملف crontab الخاص بالنظام. يُعد هذا مفيدًا لأنظمة Unix/Linux والأماكن التي تتطلب تنفيذ مهام cron حتى في حال عدم تشغيل web2py؛ كما أنه مفيد لتثبيتات CGI/WSGI إذا كان لديك صلاحية الوصول إلى ملف crontab الخاص بالنظام.

جدولة

منذ الإصدار 2.3، يُنصح بتجنب استخدام cron لأن web2py يأتي مزودًا بمُجدول رئيسي/عامل. يمكن تعريف المهام في النماذج وجدولتها بإنشاء سجل في قاعدة البيانات. يستطيع المستخدمون بدء عمليات عمل تتولى تنفيذ المهام في الخلفية. يُعد الجدولة أفضل من cron لأنها تسمح بتحديد المزيد من المعايير (وقت البدء، وقت الإيقاف، عدد التكرارات، عدد المحاولات في حالة الخطأ) وتُحسّن من كفاءة التشغيل مع الحفاظ على استخدام ثابت للموارد.

توزيع الشفرة البايتية

يستطيع Web2py تجميع تطبيقات الويب لتوزيعها في شكل بايت كود مُجمّع، دون الحاجة إلى شفرة المصدر. وعلى عكس الأطر التي تستخدم لغات قوالب متخصصة لعرضها، يستطيع Web2py أيضًا تجميع شفرة العرض إلى بايت كود، لأنها شفرة بايثون خالصة.

البيئة العالمية

يتميز Web2py عن غيره من أطر عمل الويب في بايثون بأن النماذج ووحدات التحكم تُنفذ مباشرةً، لا تُستورد. فهي ليست وحدات نمطية، بل تُنفذ في بيئة عامة واحدة تُهيأ مع كل طلب HTTP. لهذا التصميم مزايا وعيوب.

تتمثل الميزة الرئيسية في سهولة التطوير، وخاصةً لإنشاء النماذج الأولية بسرعة. ومن المزايا الأخرى أن جميع الكائنات المُعرَّفة ضمن هذه البيئة تُعاد تهيئتها بالكامل عند كل طلب HTTP، ولا تتم مشاركتها بين الطلبات. هذا يعني أن المطور لا يحتاج إلى القلق بشأن تغيير حالة أي كائن (مثل خاصية "قابلية القراءة" لحقل قاعدة البيانات)، أو القلق بشأن تسرب أي تغيير إلى طلبات متزامنة أخرى أو تطبيقات أخرى. ميزة ثالثة هي أن web2py يسمح بتشغيل تطبيقات متعددة ضمن نفس النسخة دون تعارض، حتى لو كانت تستخدم إصدارات مختلفة من نفس الوحدات أو وحدات مختلفة تحمل نفس الاسم.

تتمثل العيوب الرئيسية للبيئة العالمية في أن ملفات النماذج وملفات المتحكمات ليست وحدات نمطية، وأن ترتيب التنفيذ مهم (مع إمكانية تحديده باستخدام النماذج الشرطية). كما أن احتمالية حدوث تعارض في التسمية أكبر منها في وحدات بايثون النمطية. وقد لا تفهم بعض أدوات تطوير بايثون القياسية الكائنات المُعرَّفة في النماذج والمتحكمات. علاوة على ذلك، يجب على المطورين إدراك أن التعليمات البرمجية في النماذج تُنفَّذ مع كل طلب، مما قد يؤثر سلبًا على الأداء. لا يمنع web2py المطورين من استخدام واستيراد وحدات بايثون النمطية (النهج غير القائم على النماذج)، ولهذا الغرض، يوفر web2py كائنًا محليًا للخيط (current) لتسهيل الوصول إلى الكائنات المرتبطة بالطلب الحالي. مع ذلك، في هذه الحالة، يجب على المطور أن يكون على دراية بنفس المخاطر التي تواجهها الأطر الأخرى: فقد يؤثر تغيير حالة كائن مُعرَّف في وحدة نمطية على الطلبات المتزامنة الأخرى.

ومن السلبيات الأخرى أنه نظرًا لأن النماذج ووحدات التحكم ليست قائمة على الفئات، فإن إعادة استخدام التعليمات البرمجية بكفاءة تصبح أكثر صعوبة، لا سيما وأن عدم القدرة على الوراثة من وحدة تحكم أصلية (مثل ApplicationController في Ruby on Rails) يعني أنه يجب الإشارة إلى وظائف وحدة التحكم المشتركة بشكل متكرر عبر جميع ملفات وحدة التحكم.

البيئات المدعومة

أنظمة التشغيل، إصدارات وتطبيقات بايثون، الآلات الافتراضية، الأجهزة

يعمل برنامج web2py على أنظمة ويندوز ، وهواتف ويندوز سي إي ، وماك ، ويونكس / لينكس ، وجوجل آب إنجن ، وأمازون إي سي 2 ، ومعظم خدمات استضافة المواقع الإلكترونية عبر بايثون 2.7/3.5/3.6/pypy. [ 2 ]

يتضمن الإصدار الثنائي الحالي من web2py (لأنظمة ويندوز أو ماك) بايثون 2.7، ولكن يمكن تشغيل الإصدار المصدري على بايثون 2.7 و3.5 والإصدارات الأحدث. وقد توقف دعم بايثون 2.6 في عام 2017.

يعمل برنامج web2py منذ الإصدار 1.64.0 دون تعديل على Java مع Jython 2.5، دون أي قيود معروفة. [ 16 ]

يمكن تشغيل كود web2py باستخدام IronPython على .NET . [ 17 ] القيود:

  • لا يوجد وحدة csv (وبالتالي لا يوجد إدخال/إخراج لقاعدة البيانات)؛
  • لا توجد برامج تشغيل قواعد بيانات تابعة لجهات خارجية (ولا حتى SQLite ، لذا لا توجد قواعد بيانات على الإطلاق)؛
  • لا يوجد خادم ويب مدمج (إلا إذا قمت بتعطيله عن طريق إزالة الإشارات والتسجيل ).

سيتم تشغيل الملف الثنائي web2py [ 18 ] من محرك أقراص USB أو محرك أقراص صلبة محمول بدون تبعيات، مثل Portable Python.

خوادم الويب

يمكن لـ Web2py خدمة الطلبات عبر HTTP و HTTPS باستخدام خادم Rocket المدمج، [ 19 ] مع Apache ، [ 20 ] Lighttpd ، [ 21 ] Cherokee ، [ 22 ] Hiawatha ، Nginx وأي خادم ويب آخر تقريبًا من خلال CGI ، FastCGI ، WSGI ، mod_proxy ، [ 23 ] [ 24 ] [ 25 ] و/أو mod_python .

بيئات التطوير المتكاملة وأدوات تصحيح الأخطاء

بينما يستخدم عدد من مطوري web2py محررات نصوص مثل Vim أو Emacs أو TextMate، فإن Web2py يحتوي أيضًا على بيئة تطوير متكاملة (IDE) مدمجة عبر الويب. ويفضل آخرون أدوات أكثر تخصصًا توفر ميزات تصحيح الأخطاء وإعادة هيكلة الكود، وما إلى ذلك.

معالجة قواعد البيانات

تقوم طبقة تجريد قاعدة البيانات ( DAL ) الخاصة بـ web2py بإنشاء استعلامات SQL بشكل ديناميكي وشفاف وتعمل على العديد من قواعد البيانات الخلفية المتوافقة دون الحاجة إلى أوامر SQL خاصة بقاعدة البيانات (على الرغم من أنه يمكن إصدار أوامر SQL بشكل صريح).

تُعدّ SQLite جزءًا لا يتجزأ من بايثون، وهي قاعدة البيانات الافتراضية لـ web2py. يسمح تغيير سلسلة الاتصال بالاتصال بـ Firebird و IBM Db2 و Informix و Ingres و Microsoft SQL Server و MySQL و Oracle و PostgreSQL و Google App Engine (GAE) مع بعض القيود. الميزات الخاصة:

  • اتصالات متعددة بقواعد البيانات.
  • إنشاء الجداول وتعديلها تلقائيًا.
  • المعاملات الآلية .
  • المعاملات الموزعة :
    • منذ الإصدار web2py v1.17 مع PostgreSQL v8.2 وما بعده، [ 28 ] [ 29 ] لأنه يوفر واجهة برمجة تطبيقات لعمليات الالتزام على مرحلتين .
    • منذ الإصدار web2py v1.70.1 مع Firebird و MySQL (تجريبي).
  • GAE ليس مخزنًا علائقيًا، لكن web2py يحاكي عمليات معينة.

تتميز طبقة الوصول إلى البيانات (DAL) بالسرعة، وهي على الأقل قابلة للمقارنة مع SQLAlchemy و Storm . [ 30 ]

تُطبّق Web2py طبقة الوصول إلى البيانات (DAL)، وليس طبقة ربط الكائنات العلائقية (ORM ). تقوم طبقة ربط الكائنات العلائقية بربط جداول قاعدة البيانات بفئات تُمثّل تجريدات منطقية من طبقة قاعدة البيانات (مثل فئة المستخدم أو فئة طلب الشراء)، وتربط السجلات بمثيلات من تلك الفئات. أما طبقة الوصول إلى البيانات، فتربط جداول قاعدة البيانات والسجلات بمثيلات من فئات تُمثّل المجموعات والسجلات بدلاً من التجريدات عالية المستوى. تتشابه بنية طبقة الوصول إلى البيانات مع بنية طبقة ربط الكائنات العلائقية، لكنها أسرع، ويمكنها ربط أي تعبيرات SQL تقريبًا بتعبيرات طبقة الوصول إلى البيانات. يمكن استخدام طبقة الوصول إلى البيانات بشكل مستقل عن باقي مكونات Web2py. [ 31 ]

فيما يلي بعض الأمثلة على صيغة DAL:

db = DAL ( " postgresql ://user:pass@localhost/db" , pool_size = 10 ) db.define_table ( " person " , Field ( " name " ) , Field ( " image " , "upload" ) ) db.person.insert ( name = " Martin " , image = open ( " filename.png " ) ) rows = db ( ( db.person.name == " Martin " ) | db.person.name.contains ( " T " ) ) . select ( orderby = db.person.name.lower ( ) )

يدعم الإصدار الأخير من مكتبة DAL وظائف نظم المعلومات الجغرافية ثنائية الأبعاد باستخدام Spatialite وPostGIS. وتُعتبر واجهة برمجة التطبيقات الحالية تجريبية نظرًا لاحتمالية الانتقال إلى واجهات برمجة تطبيقات ثلاثية الأبعاد.

عمليات ترحيل قواعد البيانات التلقائية

يدعم web2py ترحيل قواعد البيانات - غيّر تعريف جدول، وسيقوم web2py بتعديل الجدول وفقًا لذلك. تتم عمليات الترحيل تلقائيًا، ولكن يمكن تعطيلها لأي جدول، وعادةً ما يتم تعطيل الترحيل عندما يكون التطبيق جاهزًا للنشر. يتم تسجيل عمليات الترحيل ومحاولات الترحيل، مما يوثق التغييرات.

القيود:

  • لا يستطيع SQLite تعديل الجدول وتغيير نوع العمود، ولكنه ببساطة يخزن القيم الجديدة وفقًا للنوع الجديد.
  • لا يوجد في GAE مفهوم لتعديل الجدول، لذا فإن عمليات الترحيل محدودة.

التراخيص

تم إصدار كود Web2py بموجب رخصة جنو العمومية الصغرى (LGPL) الإصدار 3 اعتبارًا من إصدار web2py 1.91.1. [ 32 ]

تم إصدار كود Web2py قبل الإصدار 1.91.1 بموجب رخصة جنو العمومية العامة الإصدار 2.0 مع استثناء تجاري.

تتضمن العديد من حزم البرامج الخارجية الموزعة مع web2py تراخيصها الخاصة، والتي عادةً ما تكون تراخيص ملكية عامة أو تراخيص من نوع MIT أو BSD . أما التطبيقات المبنية باستخدام web2py فلا يشملها ترخيص LGPL.

حقوق ملكية Web2py محفوظة لماسيمو ديبييرو. العلامة التجارية Web2py مملوكة لماسيمو ديبييرو .

الجوائز

في عام 2011، صنّفت مجلة InfoWorld برنامج web2py في المرتبة الأولى بين أفضل ستة أطر عمل لتطوير تطبيقات الويب باستخدام لغة بايثون، ومنحته جائزة Bossie لعام 2011 لأفضل برنامج مفتوح المصدر لتطوير التطبيقات. وفي عام 2012، فاز web2py بجائزة InfoWorld لتقنية العام. [ 33 ] [ 34 ]

المنشورات

كتاب web2py

الوثائق الأساسية لـ web2py هي كتاب web2py الرسمي، من تأليف ماسيمو ديبييرو . الدليل عبارة عن تطبيق web2py كامل وهو متاح مجانًا عبر الإنترنت، [ 35 ] بصيغة PDF أو بنسخة مطبوعة.

  • الطبعة الأولى: نفدت الطبعة . وايلي ؛ ١٦ سبتمبر ٢٠٠٨؛ ٢٥٦ صفحة؛ رقم ISBN 978-0-470-43232-7.
  • الطبعة الثانية: دليل استخدام web2py. وايلي؛ 26 أغسطس 2009؛ 341 صفحة؛ رقم ISBN 978-0-470-59235-9.
  • الطبعة الثالثة: لولو؛ 25 سبتمبر 2010، 357 صفحة.
  • الطبعة الرابعة: اللولو؛ 9 ديسمبر 2011 583 صفحة.
  • الطبعة الخامسة: نسخة PDF؛ 3 مارس 2013، 614 صفحة؛ رقم ISBN 978-0-578-12021-8.
  • أحدث المصادر على الإنترنت: على GitHub [ 36 ]

الوثائق الإلكترونية

تتوفر الوثائق عبر الإنترنت من الصفحة الرئيسية لـ web2py، مع كتاب الطبخ ، ومقاطع الفيديو، والأمثلة التفاعلية، ومرجع واجهة برمجة التطبيقات التفاعلي، ووثائق epydoc (مرجع المكتبة الكامل)، والأسئلة الشائعة ، وقائمة الغش ، والأدوات عبر الإنترنت، وما إلى ذلك.

  • ورقة غش لـ web2py.
  • web2pyslices، وصفات تم نشرها باستخدام شبكة movuca الاجتماعية في web2py.
  • دورة مكثفة في Web2py (سلسلة من 5 أجزاء).
  • شرائح Web2py (قديمة).

مقاطع فيديو

  • برنامج تعليمي حول إطار عمل الويب المؤسسي web2py .
  • فيديو تعليمي لـ web2py بعنوان "Shootout" .
  • web2py على Google App Engine .
  • web2py: إنشاء وتعديل ونشر تطبيق ويب أساسي .

مطبوع

  • "كتاب طبخ لتطوير تطبيقات web2py"، Packt، 2012
  • برمجة الويب باستخدام web2py ؛ مجلة بايثون ؛ ماركو تابيني وشركاؤه؛ يونيو 2008

خلفية

المطورون

المطور الرئيسي لبرنامج web2py هو ماسيمو ديبييرو، أستاذ مشارك في علوم الحاسوب بجامعة ديبول في شيكاغو . اعتبارًا من عام 2011، تضم الصفحة الرئيسية لبرنامج web2py أكثر من 70 "مساهمًا رئيسيًا". [ 37 ]

شفرة المصدر للتطوير

يتوفر كود المصدر الخاص بتطوير web2py من المستودع الرئيسي:

برامج الطرف الثالث المضمنة في web2py

التاريخ والتسمية

تم إصدار الشفرة المصدرية لأول نسخة عامة من web2py بموجب رخصة جنو العمومية العامة الإصدار 2.0 بتاريخ 27 سبتمبر 2007 من قِبل ماسيمو ديبييرو تحت اسم Enterprise Web Framework (EWF). تم تغيير الاسم مرتين بسبب تضارب الأسماء: حيث تبع الإصدار EWF v1.7 الإصدار Gluon v1.0، وتبع الإصدار Gluon v1.15 الإصدار web2py v1.16. تم تغيير الرخصة إلى رخصة جنو العمومية العامة الإصدار 3 (LGPLv3) ابتداءً من الإصدار 1.91.1 من web2py بتاريخ 21 ديسمبر 2010.

تطبيقات مبنية على Web2py

ملحوظات

  1. "إطار عمل Web2PyWeb" .
  2. 1 2 "ما هو web2py؟" . web2py.com . Web2py . تم الاسترجاع في 31-10-2023 .
  3. يدعم Web2py بروتوكولات متعددة منذ الإصدار 1.63
  4. استخدام بروتوكول SOAP مع web2py
  5. كتابة نماذج ذكية على الويب
  6. خادم الويب الصاروخي
  7. كيف يمكن تصحيح أخطاء تطبيقات Web2py؟
  8. يدعم Wing IDE تصحيح الأخطاء لـ web2py
  9. يدعم Eclipse/PyDev تصحيح الأخطاء لـ web2py
  10. استخدام web2py على Eclipse
  11. "باستخدام Winpdb، يمكن إجراء تصحيح الأخطاء عن بُعد عبر بروتوكول TCP/IP" . مؤرشف من الأصل بتاريخ 9 نوفمبر 2015. تم الاطلاع عليه بتاريخ 31 أكتوبر 2009 .
  12. "الاتصال المشفر في Winpdb" . مؤرشف من الأصل بتاريخ 2015-11-09 . تم الاطلاع عليه بتاريخ 2009-10-31 .
  13. أبسط صفحة ويب باستخدام web2py: مثال "مرحباً بالعالم"
  14. كيفية استخدام قوالب web2py بدون web2py
  15. استخدام قوالب جوملا مع web2py
  16. يعمل Web2py بالكامل على Java و J2EE باستخدام Jython
  17. يعمل Web2py مع IronPython على .NET، مع بعض القيود
  18. MySQL مع ملف web2py الثنائي لنظام التشغيل Windows على ذاكرة فلاش USB
  19. كيفية تشغيل خادم SSL المدمج
  20. Web2py مع Apache و mod_ssl
  21. Web2py مع Lighttpd و FastCGI
  22. Web2py مع Cherokee
  23. وحدة أباتشي mod_proxy
  24. Web2py مع mod_proxy
  25. Web2py مع mod_proxy و mod_proxy_html
  26. مشروع إريك IDE
  27. استخدام بيئة تطوير Wing مع web2py
  28. "المعاملات الموزعة باستخدام PostgreSQL" . مؤرشف من الأصل بتاريخ 14 أبريل 2009. تم الاطلاع عليه بتاريخ 30 أكتوبر 2009 .
  29. المعاملات الموزعة باستخدام PostgreSQL — مزيد من التفاصيل
  30. معيار إدارة السمعة عبر الإنترنت
  31. كيفية استخدام web2py DAL بدون web2py
  32. اتفاقية ترخيص web2py
  33. غريهان، ريك. "ركائز بايثون: مقارنة بين ستة أطر عمل ويب لبايثون" . إنفوورلد . تم الاسترجاع في 30 نوفمبر 2017 .
  34. فريق عمل، مراجعات إنفوورلد. "الفائزون بجائزة إنفوورلد لأفضل تقنية لعام 2012" . إنفوورلد . تم الاطلاع عليه بتاريخ 30 نوفمبر 2017 .
  35. "web2py - الدليل الرسمي على الإنترنت" . web2py.com . تم الاطلاع عليه بتاريخ 14 نوفمبر 2018 .
  36. "web2py/web2py-book" . GitHub . تم الاطلاع عليه بتاريخ 14-11-2018 .
  37. قائمة المساهمين الرئيسيين في web2py