顯示具有 網站架設 標籤的文章。 顯示所有文章
顯示具有 網站架設 標籤的文章。 顯示所有文章

2017年7月20日 星期四

[Django] 使用Wagtail CMS建置內容管理系統

Wagtail CMS靈活性夠,具有自己的權限系統,當使用者發布文章的時候,還可提交管理員先審核後放行(可透過郵件通知),還有版本控制的功能,讓管理者知道使用者改了些什麼,這個可以改裝成會員CRM系統/Blog共筆系統/官方網站

大家可以先參考Wagtail CMS的網站 https://wagtail.io/ 

Wagtail CMS是基於Django再改開發,建議大家直接裝
Python 3.6 + Django 1.11/2.0 +  Wagtail 1.11/2.0

廢話不多說,我們來使用pip來安裝

pip install wagtail

我們假設大家已經用Django建立出project了
1. 到 settings.py 填入以下資料
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
#以下新增    
    'wagtail.wagtailforms',
    'wagtail.wagtailredirects',
    'wagtail.wagtailembeds',
    'wagtail.wagtailsites',
    'wagtail.wagtailusers',
    'wagtail.wagtailsnippets',
    'wagtail.wagtaildocs',
    'wagtail.wagtailimages',
    'wagtail.wagtailsearch',
    'wagtail.wagtailadmin',
    'wagtail.wagtailcore',


    'taggit',
    'modelcluster',

]
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 #以下新增   
    'wagtail.wagtailcore.middleware.SiteMiddleware',

    'wagtail.wagtailredirects.middleware.RedirectMiddleware',
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
#定義網站名稱
WAGTAIL_SITE_NAME = 'My Example Site'

2. 到 urls.py 填入以下資料
from wagtail.wagtailadmin import urls as wagtailadmin_urls
from wagtail.wagtaildocs import urls as wagtaildocs_urls
from wagtail.wagtailcore import urls as wagtail_urls

urlpatterns = [
    ...
    url(r'^cms/', include(wagtailadmin_urls)),
    url(r'^documents/', include(wagtaildocs_urls)),
    url(r'^pages/', include(wagtail_urls)),
    ...
]

3. 建立資料庫
python manage.py migrate

4. 建立超級使用者
python manage.py createsuperuser

5. 啟動Wagtail CMS
python manage.py runserver
6. 來快速預覽一下Wagtail CMS的介面

2017年7月6日 星期四

Windows部屬執行IIS+Python/Django+wfastcgi

OS: Win7 SP1
Python: 3.6.0
Django: 1.11
wfastcgi: 3.0.0
Python路徑: c:\python\python.exe
Django APP路徑: C:\mulin\python crm
wfastcgi安裝後路徑: c:\python\lib\site-packages\wfastcgi.py

總是有ㄧ些因素,無法將Django部屬於Linux,只好透過IIS的wfastcgi將Django串在一起,請注意python manage.py runserver是給debug時後使用的,正式上線千萬別使用這個

1. 安裝wfastcgi並啟動它,建議直接切到該路徑C:\mulin\python crm

pip install wfastcgi

wfastcgi-enable

2. 我們在C:\mulin\python crm建立一個web.config的檔案裡面內容為,宣告handlers使用FastCGI模組,在appsettings宣告WSGI用django.core.wsgi.get_wsgi_application()"、pythonpath為C:\mulin\python crm、Django的app settings是在mysite的settings那

wfastcgi安裝後路徑: c:\python\lib\site-packages\wfastcgi.py
Python路徑: c:\python\python.exe

以上這兩個路徑要放入scriptProcessor

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>

        <system.webServer>
            <handlers>
                <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="c:\python\python.exe|c:\python\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
            </handlers>
   
        </system.webServer>
        <appSettings>
            <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
            <add key="PYTHONPATH" value="C:\mulin\python crm" />
            <add key="DJANGO_SETTINGS_MODULE" value="mysite.settings" />
        </appSettings>
    </configuration>

3. 我們需要再放一個web.config到C:\mulin\python crm\static資料夾下面來讓她知道static還有ccs那些東西

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

  <system.webServer>
    <handlers>
      <remove name="Python FastCGI" />
    </handlers>
  </system.webServer>
</configuration>

4. 安裝IIS後並啟動CGI服務
















5. 在IIS下新增一個網站,port為8000,即為成功,記得實體路徑需選C:\mulin\python crm


2017年7月5日 星期三

[IIS 7.5]使用FastCGI模組無法解析中文路徑

今天使用者輸入一個含有中文路徑的網址如下

www.example.com/member/陳小花

這時候IIS在URL轉換UTF-8/Unicode的時候出了問題,網路有些白爛說不要用中文路徑就沒有問題啦,但是程式已經開發下去怎麼可能讓你改程式呢!!

此問題是將python/django部屬於windows 7 SP1 + IIS 7.5 + FastCGI模組上遇到的,解決方法如下:

1. 以系統管理員開啟cmd視窗

2. 並於視窗內輸入以下的資訊

reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO

3. 重新啟用IIS.