메자닌 사용 방법
16921 단어 django
메자닌은 뭘 할 수 있죠?간단하게 이렇게 자신의 Blog를 만듭니다.http://aigarius.com/.좀 복잡한 예가 많다.
참조:
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.py
list에 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 확장 메자닌
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.