Upload
irpycon
View
228
Download
9
Embed Size (px)
Citation preview
Pycon
معرفی و آموزش سامانه مدیریت محتوا مزانین۱۳۹۵ اردیبهشت ۲۴سیدمحمدمسعود صدرنژاد –
) در تهران – دانشگاه علم و صنعت ایرانPyConسومین کنفرانس پایتون (
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
2
فهرست مطالب
. معرفی مزانین۱
دلیل استفاده از مزانین. ۲
. نصب و استفاده از مزانین۳
. توسعه مزانین۴
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
3
)۱معرفی مزانین (
) سیستم های مدیریت محتواCMS(ارائه رابط کاربری برای
ایجاد، ویرایش و نمایش محتوای دیجیتال•مدیریت محتوا توسط چند کاربر به صورت همزمان•
اجزاء اصلی)CMAاپلیکیشن مدیریت محتوا (•)CDAاپلیکیشن تحویل محتوا (•
انعطاف کمتر نسبت بهFrameworkهاسادگی به واسطه رابط گرافیکی و نیاز کمتر به دانش برنامه نویسی
فریمورکDjango
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
4
)۲معرفی مزانین (
مجوزBSD
دلیل استفاده از مزانینمعماری گسترش پذیرارائه بسیاری از امکانات بدون نیاز به نصب ماژول) امکان ایجاد سایت از ابتداfrom scratch((هک) انعطاف پذیری بال برای دستکاری مستقیم در کد) جامعه کاربری فعالdrum.jupo.org(
:وبسایت رسمیhttp://mezzanine.jupo.org
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
5
)۳معرفی مزانین (
دانش لزم برای کار با مزانینزبان های برنامه نویسی
CSS و HTMLدانش حداقلی • کردن تایپ ها و اپ هاextendپایتون برای •
مولفه های اصلی فریمورک جنگو•model , view, template,urlpattern, admin
دانش عمومیتنظیم محیط توسعه•کار با ورژن کنترل•نصب پکیج های پایتون•تنظیم وب سرور•
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
6
”نظرات درباره مزانین“
“Mezzanine looks pretty interesting, tempting to get me off Wordpress.”— Jesse Noller, Python core contributor, Python Software Foundation board member
“Mezzanine looks like it may be Django's killer app.”— Antonio Rodriguez, ex CTO of Hewlett Packard
“I'm enjoying working with Mezzanine, it's good work.”— Van Lindberg, Python Software Foundation chairman
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
7
)۴معرفی مزانین (
امکانات مزانین برای کاربران) مدیریت صفحات به صورت سلسله مراتبیpage navigation(مدیریت پست های وبل�گ
ایجاد، ویرایش، مشخص کردن زمان انتشار، پیشنویس و پیش نمایش• ویرایش به صورتWYSIWYG مرتب کردن صفحات به صورتDrag & Dropویرایش مستقیم مطالب در بخش فرانت اند سایت فرم ساز به صورت به صورتDrag & Drop با خروجی CSVURLهای سئوفرندلی فروشگاه ساز (با افزونهCartridge(
و
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
8
)۵معرفی مزانین (
مدیریت ویجت های داشبوردساخت بل�گتگ زدن به مطالبقالب های رایگان و پولی متنوعمدیریت حساب های کاربری و پروفایل ها با قابلیت تأیید ایمیل زبان۳۵ترجمه شده به به اشتراک گذاری محتوا در شبکه های اجتماعیایجاد سایت های چندزبانه
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
9
)۶معرفی مزانین (
امکانات مزانین برای توسعه دهنده ها استفاده از template های html متفاوت برای صفحات یکپارچگی باTwitter BootstrapAPI برای کار با انواع جدید داده در مدل ها موتور جستجو وAPI امکان یکپارچه سازی باAppهای موجود برای جنگو) سهولت مهاجرتmigrationاز وبل�گ سازهای دیگر () استقرار خودکار برنامهautomatic deployment( یکپارچه باDisqus یا سیستم built-inبرای نظرات تودرتو
و
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
10
)۷معرفی مزانین (
یکپارچه باGravatar یکپارچه باGoogle Analytics یکپارچه باTwitter feed یکپارچه باbit.ly یکپارچه باAskismet ایجادtest suit (در حال توسعه)
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
11
قالب های مزانین
mezz athe. m
e
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
12
پکیج های مزانین
djangopackages.com/grids/g/mezzanine
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
13
)۱برخی از سایت های ایجاد شده با مزانین (
ssc.ce.sharif.edu
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
14
)۲برخی از سایت های ایجاد شده با مزانین (
aichallenge.sharif.edu
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
15
)۳برخی از سایت های ایجاد شده با مزانین (
mezzanine.jupo.org/sitesنمونه های بیشتر در
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
16
)۱نصب مزانین (
:نصب خود پایتون
# aptget install pythonpip pythondev pythonsetuptools pythonimaging buildessential
نصب محیط مجازی از طریقapt
# aptget install pythonvirtualenv
از طریقpip$ pip install virtualenv
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
17
)۲نصب مزانین ((کتابخانه های کار با تصویر) نصب پیشنیازهای سیستمی
# aptget install libjpeg8 libjpeg8dev
# aptget builddep pythonimaging
پیشنیاز کتابخانه های پایتون django pillow fabric grappelli-safe filebrowser-safe bleach
pytz tzlocal chardet requests requests_oauthlib
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
18
)۳نصب مزانین (
نصب باpip(همراه تمام کتابخانه های مورد نیاز)
$ pip install mezzanine
نصب از روی سورس
$ python setup.py install
نصب در محیط مجازی
$ virtualenv newenv
$ source newenv/bin/activate
$ deactivate
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
19
)۴نصب مزانین (
به روزرسانی مزانین
$ pip install U mezzanine
دیتابیسPostgres به جای SQLite
# aptget install pythonpsycopg2
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
20
نصب مزانین و کارتریج
نصب باpip(همراه تمام کتابخانه های مورد نیاز)
$ pip install U cartridge
نصب از روی سورس
$ python setup.py install
نصب در محیط مجازی
$ virtualenv newenv
$ source newenv/bin/activate
$ deactivate
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
21
Pycharmنصب مزانین در
Pycharm → Setting → Project Interpreter → + → Mezzanine → Install Package
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
22
اضافه کردن مزانین به پروژه جنگو
پوشهproject_template
ماژول های مورد نیاز درsetting.py و urls.py
صدا زدنmezzanine.utils.conf.set_dynamic_settings setting.pyدر انتهای
INSTALLED_APP TEMPLATE_CONTEXT_PROCESSORS MIDDLEWARE_CLASSES PACKAGE_NAME_GRAPPELLI PACKAGE_NAME_FILEBROWSER
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
23
)۱استفاده از مزانین (
“A mantra for working with Mezzanine: Mezzanine Is Just Django.”— Ken Bolton, long-time Mezzanine contributor
ساخت پروژه جدید$ mezzanineproject project_name
$ cd project_name
$ python manage.py createdb noinput
$ python manage.py runserver
$ mezzanineproject a cartridge project_name
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
24
)۲استفاده از مزانین (
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
25
)۳استفاده از مزانین (
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
26
کارتریج
مجموعهtoolkit برای e-commerce
نمونه ای ازcontent typeدر مزانین
ایجاد شده بر مبنای مزانین
از طرف توسعه دهنده مزانین
ساختاری منعطف برای ساختاردهی محصولت فروشگاه
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
27
)۱توسعه مزانین (
تکنیک های مدیریت محتوا در مزانین
Pagesاا • تا) آبجکت۱۰تعداد کمی (تقریبhierarchyکنترل دستی روی محل آن در •نمایش در منو•Displayableارث بری از •
Objects یا Displayable
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
28
)۲توسعه مزانین (
پیاده سازیPage-Based
ارث بری ازmezzanine.pages.models.Page
نیازی به نوشتن لجیکview و admin.ندارید
با استفاده ازmezzanine.pages.models.RichTextPage
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
29
)۳توسعه مزانین (
مثال از پیاده سازیPage-Based فایلmodels.py
from mezzanine.pages.models import Page , RichText
class Student(Page,RichText):
major = models.CharField(max_length=60)
photo = FileField(blank=True)
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
30
)۴توسعه مزانین (
مثال از پیاده سازیPage-Based فایلadmin.py
from mezzanine.pages.admin import PageAdmin
admin.site.register(models.Student, PageAdmin)
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
31
)۵توسعه مزانین (
تکنیک های مدیریت محتوا در مزانین
Pages
Objects یا Displayableتعداد زیاد شیء و نیاز به مرتب سازی خودکار•مثال: کالها یا رویدادهای داخل تقویم•پیدا شدن با جستجو یا لیست کردن صفحات• منو هاhierarchyنه از طریق •
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
32
دمــــــــو!
Open Your Web Browser!
Let's see 'Mezzanine' in action
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
33
)۱جمع بندی (
آنچه مزانین به خوبی انجام می دهد
.جداسازی کامل ساختار و تنظیمات از محتواساختار و تنظیمات باید قابل ورژن گذاری باشند•prodامکان جابجا کردن دیتابیس از محیط تست به •نداشتن ریسک به هم ریختن محیط پروداکشن با داده تست••Continuous Integrationدیپلوی آسان روی چندین سرور•
دسترسی کامل به مارک آپ صفحاتسادگی افزودن آن به پروژه جنگو موجود
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
34
)۲جمع بندی (
آنچه مزانین به خوبی انجام نمی دهدامکان رول بک کردن تغییرات در آن وجود ندارد
مستندات ناقص تلش هایی در حال انجام است.•شما می توانید این مشکل را حل کنید!•
(چون سورس کد خوانایی دارد)
ذخیره سازی ساختار به صورت کددر نتیجه کد زیاد تغییر می کند•نامناسب برای سازمان هایی که از دیپلوی می ترسند.•
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
35
فریمورک های مشابه بر بستر جنگو
Django Fiber https://github.com/ridethepony/django-fiber
Django-CMS https://github.com/divio/django-cms
FeinCMS https://github.com/feincms/feincms
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
36
منابع و لینک ها
Source Codehttps://github.com/stephenmcd/mezzanine
Documentationhttp://mezzanine.jupo.org/docs
Mailing listhttps://groups.google.com/forum/#!forum/mezzanine-users
سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴
همایــــــــــشپایـــــــــــکان
معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد
37
تشکر و قدردانی
:با سپاس از
.شما که وقتتان را در اختیار من گذاشتید
توسعه دهندگان دانش آزاد در سراسر جهان
Pycon
پرسش و پاسخپرسش و پاسخ
طراحی شده به وسیله
twitter.com/smmsadrnezhtwitter.com/smmsadrnezh
سیدمحمدمسعود صدرنژاد