معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود...

38
Pycon ین محتوا مزان آموزش سامانه مدیریت معرفی ورنژاد – صدمسعودحمد سیدم۲۴ اردیبهشت۱۳۹۵ ) س پایتونفران کن سومینPyCon عت ایرانشگاه علم و صن – دان تهران در(

Upload: irpycon

Post on 14-Jan-2017

235 views

Category:

Technology


9 download

TRANSCRIPT

Page 1: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

Pycon

معرفی و آموزش سامانه مدیریت محتوا مزانین۱۳۹۵ اردیبهشت ۲۴سیدمحمدمسعود صدرنژاد –

) در تهران – دانشگاه علم و صنعت ایرانPyConسومین کنفرانس پایتون (

Page 2: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

2

فهرست مطالب

. معرفی مزانین۱

دلیل استفاده از مزانین. ۲

. نصب و استفاده از مزانین۳

. توسعه مزانین۴

Page 3: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

3

)۱معرفی مزانین (

) سیستم های مدیریت محتواCMS(ارائه رابط کاربری برای

ایجاد، ویرایش و نمایش محتوای دیجیتال•مدیریت محتوا توسط چند کاربر به صورت همزمان•

اجزاء اصلی)CMAاپلیکیشن مدیریت محتوا (•)CDAاپلیکیشن تحویل محتوا (•

انعطاف کمتر نسبت بهFrameworkهاسادگی به واسطه رابط گرافیکی و نیاز کمتر به دانش برنامه نویسی

فریمورکDjango

Page 4: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

4

)۲معرفی مزانین (

مجوزBSD

دلیل استفاده از مزانینمعماری گسترش پذیرارائه بسیاری از امکانات بدون نیاز به نصب ماژول) امکان ایجاد سایت از ابتداfrom scratch((هک) انعطاف پذیری بال برای دستکاری مستقیم در کد) جامعه کاربری فعالdrum.jupo.org(

:وبسایت رسمیhttp://mezzanine.jupo.org

Page 5: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

5

)۳معرفی مزانین (

دانش لزم برای کار با مزانینزبان های برنامه نویسی

CSS و HTMLدانش حداقلی • کردن تایپ ها و اپ هاextendپایتون برای •

مولفه های اصلی فریمورک جنگو•model , view, template,urlpattern, admin

دانش عمومیتنظیم محیط توسعه•کار با ورژن کنترل•نصب پکیج های پایتون•تنظیم وب سرور•

Page 6: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

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

Page 7: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

7

)۴معرفی مزانین (

امکانات مزانین برای کاربران) مدیریت صفحات به صورت سلسله مراتبیpage navigation(مدیریت پست های وبل�گ

ایجاد، ویرایش، مشخص کردن زمان انتشار، پیشنویس و پیش نمایش• ویرایش به صورتWYSIWYG مرتب کردن صفحات به صورتDrag & Dropویرایش مستقیم مطالب در بخش فرانت اند سایت فرم ساز به صورت به صورتDrag & Drop با خروجی CSVURLهای سئوفرندلی فروشگاه ساز (با افزونهCartridge(

و

Page 8: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

8

)۵معرفی مزانین (

مدیریت ویجت های داشبوردساخت بل�گتگ زدن به مطالبقالب های رایگان و پولی متنوعمدیریت حساب های کاربری و پروفایل ها با قابلیت تأیید ایمیل زبان۳۵ترجمه شده به به اشتراک گذاری محتوا در شبکه های اجتماعیایجاد سایت های چندزبانه

Page 9: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

9

)۶معرفی مزانین (

امکانات مزانین برای توسعه دهنده ها استفاده از template های html متفاوت برای صفحات یکپارچگی باTwitter BootstrapAPI برای کار با انواع جدید داده در مدل ها موتور جستجو وAPI امکان یکپارچه سازی باAppهای موجود برای جنگو) سهولت مهاجرتmigrationاز وبل�گ سازهای دیگر () استقرار خودکار برنامهautomatic deployment( یکپارچه باDisqus یا سیستم built-inبرای نظرات تودرتو

و

Page 10: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

10

)۷معرفی مزانین (

یکپارچه باGravatar یکپارچه باGoogle Analytics یکپارچه باTwitter feed یکپارچه باbit.ly یکپارچه باAskismet ایجادtest suit (در حال توسعه)

Page 11: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

11

قالب های مزانین

mezz athe. m

e

Page 12: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

12

پکیج های مزانین

djangopackages.com/grids/g/mezzanine

Page 13: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

13

)۱برخی از سایت های ایجاد شده با مزانین (

ssc.ce.sharif.edu

Page 14: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

14

)۲برخی از سایت های ایجاد شده با مزانین (

aichallenge.sharif.edu

Page 15: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

15

)۳برخی از سایت های ایجاد شده با مزانین (

mezzanine.jupo.org/sitesنمونه های بیشتر در

Page 16: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

16

)۱نصب مزانین (

:نصب خود پایتون

# apt­get install python­pip python­dev python­setuptools python­imaging build­essential

نصب محیط مجازی از طریقapt

# apt­get install python­virtualenv

از طریقpip$ pip install virtualenv

Page 17: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

17

)۲نصب مزانین ((کتابخانه های کار با تصویر) نصب پیشنیازهای سیستمی

# apt­get install libjpeg8 libjpeg8­dev

# apt­get build­dep python­imaging

پیشنیاز کتابخانه های پایتون django pillow fabric grappelli-safe filebrowser-safe bleach

pytz tzlocal chardet requests requests_oauthlib

Page 18: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

18

)۳نصب مزانین (

نصب باpip(همراه تمام کتابخانه های مورد نیاز)

$ pip install mezzanine

نصب از روی سورس

$ python setup.py install

نصب در محیط مجازی

$ virtualenv newenv

$ source newenv/bin/activate

$ deactivate

Page 19: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

19

)۴نصب مزانین (

به روزرسانی مزانین

$ pip install ­U mezzanine

دیتابیسPostgres به جای SQLite

# apt­get install python­psycopg2

Page 20: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

20

نصب مزانین و کارتریج

نصب باpip(همراه تمام کتابخانه های مورد نیاز)

$ pip install ­U cartridge

نصب از روی سورس

$ python setup.py install

نصب در محیط مجازی

$ virtualenv newenv

$ source newenv/bin/activate

$ deactivate

Page 21: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

21

Pycharmنصب مزانین در

Pycharm → Setting → Project Interpreter → + → Mezzanine → Install Package

Page 22: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

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

Page 23: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

23

)۱استفاده از مزانین (

“A mantra for working with Mezzanine: Mezzanine Is Just Django.”— Ken Bolton, long-time Mezzanine contributor

ساخت پروژه جدید$ mezzanine­project project_name

$ cd project_name

$ python manage.py createdb ­­noinput

$ python manage.py runserver

$ mezzanine­project ­a cartridge project_name

Page 24: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

24

)۲استفاده از مزانین (

Page 25: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

25

)۳استفاده از مزانین (

Page 26: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

26

کارتریج

مجموعهtoolkit برای e-commerce

نمونه ای ازcontent typeدر مزانین

ایجاد شده بر مبنای مزانین

از طرف توسعه دهنده مزانین

ساختاری منعطف برای ساختاردهی محصولت فروشگاه

Page 27: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

27

)۱توسعه مزانین (

تکنیک های مدیریت محتوا در مزانین

Pagesاا • تا) آبجکت۱۰تعداد کمی (تقریبhierarchyکنترل دستی روی محل آن در •نمایش در منو•Displayableارث بری از •

Objects یا Displayable

Page 28: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

28

)۲توسعه مزانین (

پیاده سازیPage-Based

ارث بری ازmezzanine.pages.models.Page

نیازی به نوشتن لجیکview و admin.ندارید

با استفاده ازmezzanine.pages.models.RichTextPage

Page 29: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

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)

Page 30: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

30

)۴توسعه مزانین (

مثال از پیاده سازیPage-Based فایلadmin.py

from mezzanine.pages.admin import PageAdmin

admin.site.register(models.Student, PageAdmin)

Page 31: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

31

)۵توسعه مزانین (

تکنیک های مدیریت محتوا در مزانین

Pages

Objects یا Displayableتعداد زیاد شیء و نیاز به مرتب سازی خودکار•مثال: کالها یا رویدادهای داخل تقویم•پیدا شدن با جستجو یا لیست کردن صفحات• منو هاhierarchyنه از طریق •

Page 32: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

32

دمــــــــو!

Open Your Web Browser!

Let's see 'Mezzanine' in action

Page 33: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

33

)۱جمع بندی (

آنچه مزانین به خوبی انجام می دهد

.جداسازی کامل ساختار و تنظیمات از محتواساختار و تنظیمات باید قابل ورژن گذاری باشند•prodامکان جابجا کردن دیتابیس از محیط تست به •نداشتن ریسک به هم ریختن محیط پروداکشن با داده تست••Continuous Integrationدیپلوی آسان روی چندین سرور•

دسترسی کامل به مارک آپ صفحاتسادگی افزودن آن به پروژه جنگو موجود

Page 34: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

34

)۲جمع بندی (

آنچه مزانین به خوبی انجام نمی دهدامکان رول بک کردن تغییرات در آن وجود ندارد

مستندات ناقص تلش هایی در حال انجام است.•شما می توانید این مشکل را حل کنید!•

(چون سورس کد خوانایی دارد)

ذخیره سازی ساختار به صورت کددر نتیجه کد زیاد تغییر می کند•نامناسب برای سازمان هایی که از دیپلوی می ترسند.•

Page 35: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

35

فریمورک های مشابه بر بستر جنگو

Django Fiber https://github.com/ridethepony/django-fiber

Django-CMS https://github.com/divio/django-cms

FeinCMS https://github.com/feincms/feincms

Page 36: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

36

منابع و لینک ها

Source Codehttps://github.com/stephenmcd/mezzanine

Documentationhttp://mezzanine.jupo.org/docs

Mailing listhttps://groups.google.com/forum/#!forum/mezzanine-users

Page 37: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

سومین کنفرانس پایتون در تهران ۱۳۹۵/۲/۲۴

همایــــــــــشپایـــــــــــکان

معرفی و آموزش سامانه مدیریت محتوا مزانینسیدمحمدمسعود صدرنژاد

37

تشکر و قدردانی

:با سپاس از

.شما که وقتتان را در اختیار من گذاشتید

توسعه دهندگان دانش آزاد در سراسر جهان

Page 38: معرفی و آموزش سامانه مدیریت محتوای مزانین - سید مسعود صدر نژاد

Pycon

پرسش و پاسخپرسش و پاسخ

طراحی شده به وسیله

twitter.com/smmsadrnezhtwitter.com/smmsadrnezh

سیدمحمدمسعود صدرنژاد