介绍一下 Django-wiki
首先
Python和Django中有许多由前辈们构建的各种应用程序。
自己从零开始建立系统是非常有趣和具有挑战性的事情。然而,我认为偶尔站在巨人的肩膀上欣赏风景也不错。
在这里,我们将介绍django-wiki这个已经发布的Django应用的设置配置。
系统需求
请假设下列内容已经安装完毕。
-
- Django 2系(Django 2.1を使用)
-
- python 3系(python 3.7を使用)
- Apache 2.4(webサーバへデプロイする人のみ)
django-wiki是这样的东西

您可以使用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 官方网页