وccnmtldjango هو قالب لصق التي نستخدمها لتحل محل معيار django-admin.py قيادة startproject.
وهو يفعل نفس المهمة الأساسية لإنشاء بنية دليل للالتطبيق جانغو، ولكن تم تمديده لتنفيذ الكثير من وظائف محددة CCNMTL والتكوين.
ما يوفر لنا يفعل ذلك startproject لا:
- جانغو الرياح (جسر جانغو لخدمة المصادقة المركزية كولومبيا - http://www.jasig.org/cas/deployments/columbia-university) يتم تضمين وتكوين افتراضيا لذلك لدينا تطبيقات يمكن استخدامها WIND للالمصادقة تلقائيا. أي أن أي شخص لديه كولومبيا UNI افتراضيا لديك حساب. يتم تعيين دائرة إعلام المطور CCNMTL تلقائيا كما superusers، وaffil المجموعة التي الموظفين CCNMTL جميعا قد يحصل على تعيينها تلقائيا إلى الموظفين. هذه هي التخلف مفيدة عموما بالنسبة لنا.
- virtualenv والإعداد نقطة تقريبا مع كتل القطران مصدر المجمعة وbootstrappable، كوخ manage.py في تعيين لاستخدام ذلك. هذا يناسب أساسا هو داخل لدينا من خطوة واحدة الآلي نشر والاحتواء النهج.
- sorl.thumbnail (صورة مدهش مكتبة من تصغير يدوية) يتم تضمين افتراضيا
- مكنت flatpages
- تقسيم إعدادات ديف / همز
- اباتشي / django.wsgi تكوين
- التكوين عينة اباتشي من أجل الإعداد mod_wsgi باستخدام البيئات الافتراضية (هو تبسيط كل شيء حتى نتمكن من مجرد الارتباط الرمزي ملف التكوين اباتشي ولدت في لدينا خادم الإنتاج ل / الخ / اباتشي / / الدليل وأنه من الجيد أن تذهب تمكين مواقع)
- تطبيق الاستعراض المفصل وسائل الإعلام لديف وهمز تكوين
- وشملت smartif (https://github.com/thraxil/django-smartif/tree/master)
- وشملت template_utils (http://code.google.com/p/django-template-utils/)، وكذلك feedparser، وهو ما يعتمد على لتغذية الاشياء
- جانغو-typogrify شملت (http://code.google.com/p/typogrify/) جنبا إلى جنب مع smartypants.py (الذي يستخدم فيه)
- وشملت جانغو، خفير (https://github.com/dcramer/django-sentry) وتكوينها من أجل الإعداد لدينا
- وشملت جانغو-مونين (https://github.com/ccnmtl/django-munin)
- يتم تضمين جنوب لهجرات قاعدة بيانات
- يتم تضمين-جانغو مزعج (أنا أحبrender_to)
- جانغو الأنف تثبيت وتنشأ حسب اختبار عداء (أجمل بكثير!)
- سكليتي في الذاكرة قاعدة البيانات المستخدمة لوحدة الاختبارات
- تخطي الاختبارات الجنوب تلقائيا على اختبار ./manage.py (كسروا)
- django_compressor المضافة والتي أنشئت لضغط المغلق على الإنتاج
- uuid.py
- مسج (1.4.2، مصغر) وشملت
- hs.js
- tabber.js
- widget.js
- tablesort.js
- يتم تضمين CSS المطلوبة لمكتبات شبيبة أعلاه في site.css افتراضيا
- قوالب قاعدة شملت
- المشرف جانغو تمكين (وموثق مع WIND لTLC)
- restclient
- httplib2
- imageuploader
- يتم تضمين تخفيض السعر وتمكين
- تخلفت قاعدة البيانات لكيو (قضية الخلية هو تيه تمتص)
- الوسيطة الصفقة تمكين افتراضيا (تلف البيانات السبب هو تيه تمتص)
- مجموعة التوقيت
- تحولت I18N قبالة (نحن أحادي اللغة للأسف لا معنى له في إنكار ذلك.)
- PIL
- psycopg2 (تجريده من التبعية mx.DateTime به)
- لطيفة تصميم القالب الافتراضي مع قوالب قاعدة بديلة للتخطيط بأعمدة.
لاستخدام ccnmtldjango، تحتاج الثعبان 2.6+، virtualenv، نقطة، وsetuptools الأخيرة تثبيتها على جهازك.
أولا، إذا كنت لا بالفعل قد قمت بتثبيت ccnmtldjango، والقيام
على & nbsp؛ easy_install ccnmtldjango
يجب أن تسحب تلقائيا في تبعيات المطلوبة (فقط PasteScript، في الواقع).
تشغيل
على & nbsp؛ المقرب إنشاء قوالب --list-
وينبغي أن تشمل ccnmtldjango
الآن، لQUICKSTART مشروع جانغو، هل
على & nbsp؛ المقرب خلق --template = ccnmtldjango myprojectname
myprojectname ينبغي أن يكون الثعبان وحدة اسم (أي صغيرة، لا علامات الترقيم، الخ). فإنه سيتم إنشاء دليل يسمى myprojectname التي لديها مشروع جانغو في ذلك.
المقرب زال لا يفعل أي شيء مع أذونات الملف، لذلك نحن ما زلنا بحاجة لوضع زوجين يدويا:
على & nbsp؛ مؤتمر نزع السلاح myprojectname
على & nbsp؛ شمود 755 bootstrap.py manage.py
أنا لا يمكن أن يجدوا طريقة لإدراج سلاسل عشوائية في التعليمات البرمجية عن طريق قالب لصق، لذلك الشيء الوحيد الذي ccnmtldjango مفقود مقارنة startproject جانغو العادية هو أن متغير SECRET_KEY في settings_shared.py هو دائما نفس الافتراضية. وهذا واضح ليس فكرة جيدة، لذلك تأكد من تغيير ذلك إلى بعض سلسلة عشوائية أخرى من شأنها أن تكون فريدة من نوعها إلى المشروع.
وربما هذا هو نقطة جيدة للتحقق من المشروع إلى التحكم في الإصدار.
نحن نستخدم الاحتواء لجانغو أيضا، مع virtualenv:
على & nbsp؛ ./ bootstrap.py
والتي تخلق لقد الدليل الذي يحتوي على virtualenv وكان جميع المكتبات في الدليل المتطلبات / SRC تثبيت فيه (وهذا يشمل جانغو نفسها). ولقد لا ينبغي أبدا أن فحص الدليل إلى إس منذ أن ولدت فيه. إذا كنت بحاجة إلى المكتبات الأخرى للتطبيق الخاص بك، حزمة لهم على النحو كتل القطران وإفلاتها في متطلبات / SRC / الدليل، وإضافتها إلى متطلبات / libs.txt أو متطلبات / apps.txt (اعتمادا على ما إذا كانت هناك مكتبات الثعبان العادية أو جانغو التطبيقات) ثم إعادة تشغيل ./bootstrap.py.
نضع في اعتبارنا أن مع virtualenv، وليس هناك حاجة لتفعيل بيئة. بدلا من ذلك، لقد لديه الدليل الذي يحتوي على بن قابل للتنفيذ الثعبان. إذا كنت تستخدم أنه بدلا من تنفيذ نظام الثعبان، فإنه يستخدم مكتبات في هذا virtualenv.
ccnmtldjango يفترض أن مشروعك سوف تستخدم قاعدة بيانات كيو مع نفس اسم المشروع. لذلك، على سبيل المثال لدينا، يمكنك عندئذ القيام به:
على & nbsp؛ myprojectname createdb
وعن تعيينها إلى استخدامه:
على & nbsp؛ ./ manage.py syncdb
سيتم تثبيت الجداول التي جانغو الاحتياجات لانها التطبيقات المشتركة (مواقع، جلسات، المشرف، flatpages، الخ) ولقد قمت بإنشاء مستخدم المشرف.
وsyncdb ./manage.py يضع التلقائى تصل إلى "example.com" الموقع. يجب تغيير هذا إلى المجال موقعك (على سبيل المثال مضيف محلي: 8000) عن طريق وحدة التحكم المشرف. HTTP: // المضيف المحلي: 8000 / المشرف / المواقع / الموقع /. (إذا كان يهم للتطبيق الخاص بك)
طلبك جاهز للتشغيل الآن:
على & nbsp؛ ./ manage.py runserver
ستبدأ الخادم على http: // المضيف المحلي: 8000 /. الذهاب الى هناك سوف أعطيك 404 منذ يوجد شيء في التطبيق بعد، ولكن يجب أن يكون التطبيق المشرف الوصول (عن طريق حساب المستخدم الذي قمت بإنشائه خلال syncdb، أو عن طريق WIND للمستخدمين TLC (أو تلك المحددة في القائمة WIND_SUPERUSER_MAPPER_GROUPS في settings_shared.py .) فهيا والدخول إلى http: // المضيف المحلي: 8000 / المشرف /
حتى من دون أي رمز معين التطبيق، يتم تضمين flatpages حتى تتمكن من وضع المحتوى على شبكة الإنترنت على الفور.
من هذه النقطة بها، فإنه من تطوير جانغو الأساسية. عليك ربما تريد أن تفعل startapp ./manage.py لخلق التطبيق الخاص بك ضمن مشروع وهلم جرا.
إنشاء الخروج جديدة
في المرة الأولى التي تحقق من مشروع ccnmtl-قالب موجود من إس / بوابة:
على & nbsp؛ ./ bootstrap.py
./manage.py runserver
الاختلافات من جانغو القياسية تثبيت
من الواضح، تم إضافة مجموعة من المكتبات وكذا وهناك الشيء virtualenv كله. وهناك أيضا بعض الاختلافات من مشروع جانغو القياسي (أي نتيجة startproject django-admin.py) التي يجب أن تكون awayre من.
أولا، تم تقسيم الإعدادات إلى جعل ديف وهمز نشر أسهل لتكوين. وهناك جانغو منتظم تثبيت يكون ملف settings.py واحد يحتوي على جميع الإعدادات. ومطوري جانغو عادة نسخ هذا الملف الإعدادات وإجراء تغييرات عند نشر إلى الإنتاج. ccnmtldjango يستفيد من حقيقة أن الإعدادات هي رمز الثعبان عادل ويمكن استيرادها وتجاوز. لذلك لدينا settings_shared.py الذي يحتوي على أكثر من الإعدادات. settings.py (التي ينبغي أن تستخدم للتنمية) وsettings_production.py ثم استيراد كل شيء من من settings_shared.py. settings_production.py ثم يتجاوز أيضا أي الإعدادات التي يجب أن تكون مختلفة في نشر إنتاج (عادة المسارات إلى القوالب وملفات الوسائط).
يتم تمكين TransactionMiddleware افتراضيا. وهذا يعني أن كل طلب HTTP يحصل على المعاملة التي ترتكب أو تتحرك مرة أخرى في نهاية هذا الطلب. الإعداد الافتراضي جانغو لسبب لا شيء "AUTOCOMMIT" نمط حيث تدير كل عملية قاعدة البيانات في المعاملات الخاصة بها، مستقلة عن طلب HTTP.
الفرق الكبير الآخر ليكون على بينة من هو الدليل قوالب المستوى الأعلى. الإجراء جانغو هو معيار لديك دليل القوالب في كل تطبيق في المشروع الذي يحتوي على نماذج لهذا التطبيق. ccnmtldjango لديه دليل القوالب على مستوى عال لأسباب زوجين. أولا، منذ المقرب يخلق فقط الدليل مستوى المشروع وليس الدلائل التطبيق، فإنه هو السبيل الوحيد لأنها قد تشمل base.html افتراضي، المشرف / login.html، وتسجيل / login.html وهلم جرا. أنا أيضا تماما مثل نهج من وجود دليل القوالب على مستوى المشروع، وخاصة للقالب base.html. جانغو يسمح الدلائل قالب متعددة وعمليات البحث من خلالهم في ترتيب يمكن التنبؤ به، لذلك يمكنك (وربما يجب) لا يزال إنشاء الدلائل قالب مستوى التطبيق، إدراجها في TEMPLATE_DIRS قبيل مستوى مشروع واحد، وتجاوز كل ما قوالب تريد في تلك.
يتم تشغيل I18N متقطع منذ أنه من النادر نسبيا أن نفعل الاشياء متعدد اللغات وانها الأداء ضرب لأنها قد تمكين إذا هو عدم استخدامه. إذا كنت بحاجة إلى القيام موقع جانغو متعدد اللغات، فقط إعادة تمكينه والحصول على العمل
المتطلبات:.
بيثون
لم يتم العثور على التعليقات