介绍一下 Django-wiki

首先

Python和Django中有许多由前辈们构建的各种应用程序。

自己从零开始建立系统是非常有趣和具有挑战性的事情。然而,我认为偶尔站在巨人的肩膀上欣赏风景也不错。

在这里,我们将介绍django-wiki这个已经发布的Django应用的设置配置。

系统需求

请假设下列内容已经安装完毕。

    • Django 2系(Django 2.1を使用)

 

    • python 3系(python 3.7を使用)

 

    Apache 2.4(webサーバへデプロイする人のみ)

django-wiki是这样的东西

index.gif

您可以使用Markdown格式创建文章。之后,您可以像普通维基百科一样,无需登录即可浏览,登录后可以编辑文章。每篇文章都可以进行写入和阅读设置。

我们可以把它作为大家共同使用的wiki,也可以在django的开发服务器上启动它,将其作为个人wiki来存储信息。

安装步骤

通过运行 pip install wiki 命令,您可以下载软件包。

进行设置 wú

以下是settings.py的摘录。请将其添加到默认的settings.py中。


# INSTALLED_APPに追加するもの
'django.contrib.sites.apps.SitesConfig',
'django.contrib.humanize.apps.HumanizeConfig',
'django_nyt.apps.DjangoNytConfig',
'mptt',
'sekizai',
'sorl.thumbnail',
'wiki.apps.WikiConfig',
'wiki.plugins.attachments.apps.AttachmentsConfig',
'wiki.plugins.notifications.apps.NotificationsConfig',
'wiki.plugins.images.apps.ImagesConfig',
'wiki.plugins.macros.apps.MacrosConfig',

#TEMPLATESに追加するもの
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'APP_DIRS': True,
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'OPTIONS': {
            'context_processors': [
                'django.contrib.auth.context_processors.auth',
                'django.template.context_processors.debug',
                'django.template.context_processors.i18n',
                'django.template.context_processors.media',
                'django.template.context_processors.request',
                'django.template.context_processors.static',
                'django.template.context_processors.tz',
                'django.contrib.messages.context_processors.messages',
                "sekizai.context_processors.sekizai",
            ],
        },
    },
]

#SITE_ID
SITE_ID = 1

#静的ファイル、メディアを配置する場所を指定
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

# メディアファイル関連l
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

#ログインした後のリダイレクト先
LOGIN_REDIRECT_URL = 'wiki:get'

这是整个项目的urls.py文件。

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('notifications/', include('django_nyt.urls')),
    path('', include('wiki.urls'))
]

if settings.DEBUG:    
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在项目根目录下创建名为templates/wiki/的文件夹,并将base.html存放其中。尽管不存放base.html,应用程序仍然可以运行。

{% extends "wiki/base_site.html" %}

{% block wiki_site_title %} - Wiki{% endblock %}

{% block wiki_header_branding %}
<a class="navbar-brand" href="/">ここがヘッダーに入る文字になります。</a>
{% endblock %}

{% block wiki_header_navlinks %}
<ul class="nav navbar-nav">
    <li class="active"><a href="{% url 'wiki:root' %}">Wiki</a></li>
</ul>
{% endblock %}

在将应用部署到Apache服务器时需要注意的事项。

在将Centos7部署时,经常会出现各个目录权限错误的情况。不仅要注意文件本身的权限,还要注意包含该文件的目录的权限。

另外,为了图像显示,似乎需要先建立一个名为「cache」的文件夹。至少在我的环境中是必需的。

在 settings.py 中設定的媒體根目錄(例如 /media/)下創建一個名為「cache」的資料夾。權限如下所示:

drwxr-xr-x 8 daemon root cache 可以被改写成如下的方式:

drwxr-xr-x 8 daemon root cache

https://eng-entrance.com/linux-permission-basic 將告訴你關於Linux 權限的基本知識。

https://qiita.com/takuyanin/items/18590600d077df707923#パーミッションを確認しよう 將教你如何檢查權限。

文献资料、引述

django-wiki 官方网页

bannerAds