메자닌 사용 방법

16921 단어 django
Mezzanine은 유명한 오픈소스이자 Django 기반의 CMS 시스템(content management system)이다.사실 모든 사이트는 특정한 내용 관리 시스템으로 볼 수 있지만 사이트마다 발표와 관리의 구체적인 내용이 다르다.씨트립은 항공편, 호텔과 사용자의 주문 정보, 타오바오가 발표한 상품과 사용자의 주문 정보를 발표한다.그래서 많은 사이트들이 메자닌을 바탕으로 만들어졌다고 합니다.
메자닌은 뭘 할 수 있죠?간단하게 이렇게 자신의 Blog를 만듭니다.http://aigarius.com/.좀 복잡한 예가 많다.
참조:
  • https://rodmtech.net/docs/mezzanine/a-mezzanine-tutorial-take-2/
  • http://bitofpixels.com/blog/mezzatheming-creating-mezzanine-themes-part-1-basehtml/

  • 1 메자닌 설치
    a 가상 환경 가상 Env 설치
    가상 환경을 사용하는 것을 추천합니다. 원인 중 하나는 사이트를 구축하려면 대량의 파이톤 패키지가 필요합니다. 파이톤의 각종 패키지 관리는 괜찮지만 양이 너무 많으면 충돌하기 쉽습니다.둘째, 데이터를 분석하는 환경과 사이트를 개발하는 환경은 서로 다른 설정이 많을 수 있다.그래서 서로 다른 개발 환경을 분리하는 것이 가장 좋다.Mezzanine은 Django의 Python을 바탕으로 개발한 것으로 이 웹 개발 환경을 독립시키는 것이 가장 좋다.
    sudo apt-get install python-virtualenv   #       。   Theano Python        
    virtualenv webenv      #         webenv  ,              
    source webenv/bin/activate    #         。(    command prompt   )

    가상 환경을 종료해야 하는 경우 deactivate 를 실행하면 됩니다.pip install로 가상 환경을 설치하는 것을 권장하는데 python-virtualenv 가방에 대한 유지보수가 pip보다 낫다고 합니다.
    b 메자닌 설치
    가상 환경:
    pip install mezzanine 
    pip install south   #         
    cd webenv  #               .
    mezzanine-project mezzsite #        
    cd mezzsite
    pwd > ../.project  #          ,fabric       

    사이트의 디렉토리apt-get는 가상 환경 디렉토리mezzsite 아래에 있습니다.사이트가 발표되었을 때fabric는 기본적으로 이런 디렉터리 구조였기 때문에 추천하는 사람이 있다.webenv의 파일 디렉토리:
    c 사이트 초기화
    가상 환경:
    python manage.py createdb
    python manage.py runserver  #     127.0.0.1:8000
    or
    python manage.py runserver  0.0.0.0:5800 #     5800  ,      

    기본값은 sqllite 데이터베이스로 dev.db를 만들 것입니다.데이터베이스를 삭제하려면 dev.db 파일을 삭제하면 됩니다.mysql 데이터베이스를 사용하면 수정mezzsite하십시오.
    2 사용자 지정 페이지
    1 기본 사이트
    Admin 의 인터페이스에 로그인하면 주로 다음과 같은 세 가지 섹션이 관리됩니다.Pages: 페이지.각 페이지 간에 예속 관계가 있을 수 있다.이 예속 관계는 사이트 왼쪽의 메뉴 트리 구조와 사이트 꼭대기의 메뉴 트리 구조를 통해 나타낼 수 있다.페이지는 정적 또는 Form일 수 있습니다.아무 페이지나 추가한 결과: - Blog Posts: Blog 쓰기와 비슷합니다. -Comments: Blog와 유사한 Comments -Media Library: 디렉토리, 이미지를 포함할 수 있습니다.이 사진들은 Pages에 사용할 수 있습니다. -Site: 사이트의 일부 설정을 관리합니다. -Users: 사이트의 User를 관리합니다.
    너는 반드시 인터페이스에 대해 자신의 생각을 가지고 페이지를 스스로 정의하려고 한다.
    2 Markdown 지원 추가
    Markdown은 매우 간결하고 효율적인 텍스트 편집 형식입니다.Blog를 쓸 때 Markdown을 지원하는 것은 적은 노력으로 큰 효과를 거둘 수 있다.페이지down 사이트에 상세한 설명이 있습니다.
    a. install
    pip install mezzanine-pagedown Pygments

    b. edit ./mezzsite/local_setting.py settings.pylist에 INSTALLED_APPS.
    INSTALLED_APPS = (
        "mezzanine_pagedown",  #   
        "django.contrib.admin",
        "django.contrib.auth",

    그리고 setting에서.py에 mezzanine-pagedown의 설정 정보를 추가하려면:
    ##################### # PAGEDOWN SETTINGS # #####################
    RICHTEXT_WIDGET_CLASS = 'mezzanine_pagedown.widgets.PageDownWidget'
    RICHTEXT_FILTERS = ['mezzanine_pagedown.filters.codehilite',]
    PAGEDOWN_MARKDOWN_EXTENSIONS = ('extra','codehilite','toc')
    RICHTEXT_FILTER_LEVEL = 3  #      >    。
    PAGEDOWN_SERVER_SIDE_PREVIEW = False # markdown   Client Render 。

    c. edit mezzanine-pagedown
    urls 편집.py 파일, mezzanine 가입페이지down의 URL입니다.
    import mezzanine_pagedown.urls

    mezzanine "catch all", 즉 기본 url 규칙urls.py 이전에 가입:
        ("^pagedown/", include(mezzanine_pagedown.urls)),

    d. Test
    서버를 다시 시작하고 Blog 편집에서markdown의 텍스트를 입력하면Markdown의 지원을 볼 수 있습니다.
    질문: 왜 프리뷰가 없습니까? rich text 페이지에는 프리뷰가 없고 메타데이터도 불러올 수 없습니다. 하지만 갤러리와Form에는 모두 프리뷰가 있고 메타데이터도 정상입니다.
    3 강조 구문 및 배경 사용자 정의 추가
    사용자 정의 사이트 인터페이스 스타일의 표준적인 방법은 새로운 응용 프로그램을 만드는 것이다.응용 프로그램의template는 먼저 불러오는 것이기 때문에 사용자 정의의 인터페이스 스타일은 사이트에 나타날 수 있다.
    a. 새로운 애플리케이션 구축
    python manage.py startapp theme  

    응용 프로그램의 이름은 theme입니다. 왜냐하면 스타일을 정의하는 데 사용되기 때문입니다.그러나django의 스타일에 따라 폴더를 만들고 응용 프로그램의 각종 파일을 포함합니다.
    (webenv)$ tree theme
    theme
    ├── admin.py
    ├── __init__.py
    ├── migrations
    │ └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

    모두 표준 Django 애플리케이션의 파일 템플릿이며 기본적으로 비어 있습니다.
    b. 새 css 생성
    pygments를 설치한 후 관리자.py에 명령이 하나 더 있습니다.
    python manage.py pygments_styles    #         css    。

    뜻밖의 결과: warn("You haven't defined the AllOWED HOSTS settings...).setting.py를 수정하면("^", include("mezzanine.urls")),됩니다.
    mkdir -p theme/static/css  
    touch theme/__init__.py
    python manage.py pygments_styles colorful >theme/static/css/codehilite.css

    c. setting을 계속 수정합니다.py
    새 theme 응용 프로그램을 추가하려면 다음과 같이 하십시오.
    INSTALLED_APPS = (
        "theme",
        "mezzanine_pagedown",
        "django.contrib.admin",

    d. 템플릿 파일 수정
    Django is finding those templates via ALLOWED_HOSTS = ('localhost', '.local') . 일반적으로 우리는 도대체 어떻게template 파일을 수집하는지 이해하기 어렵다.Mezzanine은 다음과 같이 모든 template 파일을 수집하는 명령을 제공합니다.
    python manage.py collecttemplates  #    template     templates    (      )
    python manage.py collecttemplates -t base.html #             ,      base.html    。
    mv templates/  theme/  #            。
    

    e. 템플릿 파일 수정 및 사용자 정의 css 추가
    In templates/base.html, find the stylesheet link tags, which should be just under a {% compress css %} line. Add the custom.css file below the bootstrap and mezzanine entries. The font callout must be above/outside the compress tag; what’s inside the “compress css” will get concatanted into a single download file for production, i.e., with DEBUG turned off. A link with an href will not work inside that compress block. "compress css"는 모든 css를 압축 전송하여 대역폭을 비교적 절약합니다.
    {% compress css %} <link rel="stylesheet" href="{% static "css/bootstrap.css" %}"> <link rel="stylesheet" href="{% static "css/mezzanine.css" %}"> <link rel="stylesheet" href="{% static "css/bootstrap-responsive.css" %}"> <link rel="stylesheet" href="{% static "css/codehilite.css" %}"> <link rel="stylesheet" href="{% static "css/custom.css" %}">

    theme/static/css 디렉터리에custom을 추가합니다.css 파일:
    body { background-color: #f3f3f3; font-family : 'Ubuntu', sans-serif; }

    f. restart the server
    markdown 코드에 대한 문법이 밝아졌습니다.또한 전체 사이트의 배경은 settings.TEMPLATE_DIRS색으로 바뀌었고 이것은#f3f3f3색이다.
    4 인터페이스 스타일 수정
    a. Search 옵션 제거
    setting을 수정합니다.py, 다음과 같은 구성이 포함됩니다.
    SEARCH_MODEL_CHOICES = []

    b. 왼쪽과 아래 메뉴를 제거합니다.
    setting을 수정합니다.py, 다음 설정을 찾아서 주석을 달아주세요.
    PAGE_MENU_TEMPLATES = (
         (1, _("Top navigation bar"), "pages/menus/dropdown.html"),
    )

    베이스도 수정해야 합니다.html 파일, 상응하는 메뉴의 문장을 삭제합니다.다음과 같이 삭제합니다.
    {% page_menu "pages/menus/tree.html" %}
    and
    {% page_menu "pages/menus/footer.html" %}

    what is this? 이것은 잘 모르겠습니다. 왼쪽 메뉴 위의 내용인 것 같습니다.
    {% block breadcrumb_menu %}{% page_menu "pages/menus/breadcrumb.html" %}

    c. 왼쪽이 좁아지고 가운데 본문 부분이 넓어진다.
    <div class="col-md-1 left"> {% block left_panel %} <div class="panel panel-default tree"></div> {% endblock %} </div> <div class="col-md-8 middle"> {% block main %}{% endblock %} </div>

    여기에class="col-md-2left"를class="col-md-1left"로 바꾸면 왼쪽 구역을 좀 좁힐 수 있습니다.
    5 Homepage 수정
    메자닌은 홈 페이지를 정성껏 가공해야 한다고 생각하는데 모든 메자닌 시스템은 이 일에 관여하고 싶지 않다.니들끼리 디자인해.“In our experience, the homepage of a beautiful, content driven website, is quite different from other pages of the site, that all fall under sets of repeatable page types. The homepage also differs greatly from site to site. Given this, Mezzanine doesn’t presume how your homepage will be structured and managed. It’s up to you to implement how it works per site.”
    Mezzanine에서 기본 홈 페이지를 제공합니다. 마음에 들지 않으면 url에서.py의 comment 코드 행:
    #url("^$", direct_to_template, {"template": "index.html"}, name="home"),

    만약 사이트가 주로 Blog라면 Blog의 목록 홈페이지를 홈 페이지로 하는 것은 흔히 볼 수 있는 방법이다.url에서만 가능합니다.py의 un-comment 행은 다음과 같습니다.
    url("^$", "mezzanine.blog.views.blog_post_list", name="home"),

    이 줄 코드 앞에 설명이 있는데 다른 일을 해야 해요. 안 해도 괜찮을 것 같아요.
    사이트의 페이지를 메인 페이지로 삼으려면 url에 있습니다.py의 un-comment 행은 다음과 같습니다.
    url("^$", "mezzanine.pages.views.page", {"slug": "/"}, name="home"),

    This change hands the home page over to the mezzanine.pages package views.py file, to the page function. The key point is the home page will now come from the CMS, i.e., the Pages table in the database, specifically, the record with a/as its slug value. 홈 페이지는 CMS의 한 페이지일 뿐입니다.
    urls를 고치다.py는 아직 사용할 수 없습니다. 왜냐하면/가리키는 페이지가 아직 존재하지 않기 때문입니다.Go to admin, add a page and give it a/url (in the Meta section).
    그러나markdown widget 문제로 rich text 페이지의 메타데이터를 수정할 수 없습니다.따라서 Gallery Page 하나만 추가하여 URL을/로 변경할 수 있습니다.홈 페이지를 다시 보면 페이지의 타이틀을 표시할 수 있지만 내용을 표시할 수 없습니다.
    Template 문제 때문입니다.Mezzanine’s CMS template rules will use templates/pages/index.html for the/page from the Pages table. python 관리자를 실행합니다.py collecttemplates 명령은 모든template 파일을 가져오고templates/pages/index를 찾습니다.html, 이 파일에는 다음과 같은 줄이 있습니다.
    {% extends "pages/richtextpage.html" %}

    새로 만든 홈 페이지는 Gallery이지만,template는 rich text이기 때문에 제대로 불러오지 않았습니다.이 줄을 다음과 같이 변경합니다.
    {% extends "pages/gallery.html" %}

    Test, OK
    3 확장 메자닌

    좋은 웹페이지 즐겨찾기