Mezzanine-如何啟動多個Site/如何在本機上測試/並添加不同頁面

Posted by: Max Chen | in Mezzanine | 1 year, 11 months ago |

Mezzanine-如何啟動多個Site/如何在本機上測試/並添加不同頁面

Mezzanine有提供一個方便的功能, 能夠讓一個DB與一份Mezzanine,能夠實現兩個不同的站, 可以在同一個admin url做管理. MULTI-TENANCY The “sites” framework 只需選擇右上即可做切換.

但是此時你會發現, 你一切換, 另外一個SITE的頁面也換了, 這樣就很蛋疼了, 一切都是Domain問題, 以下進行介紹.

如何設定呢?

(1) 首先進入admin後台, 會發現有SITE, 可以手動增加.

注意: 必須Domain Name必須要與你的Domain Name相同, 如此才有區分Site的效果

如圖所示, 我是使用ngork創造一個url, mock到我的http://localhost:8000

ngrok也很簡單, 基本上只要註冊登入, 按照第一頁顯示的操作即可, 如圖:

(2) 修改setting.py

將你的要啟動的Site, 選擇正確的SiteId, 並在啟動使, 指定你要用的setting.py

如果你不知道正確的SITEID, 可以進DB看, 或者按F12看.

我就是另外新增一個setting_site2.py, 當作是另外一個站台的setting.

(3) 修改local_setting.py (常常忘記)

由於local_setting.py的值, 當你runserver時, 最後會覆蓋setting.py, 因此這裡的AllowHost也要修改為*, 否則將得到:

Invalid HTTP_HOST header: 'XXX.XXX.XXX.XXX:8000'. You may need to add u'XXX.XXX.XXX.XXX' to ALLOWED_HOSTS.

(4)啟動

最後, 執行

``` python manage.py runserver 127.0.0.1:8000
--settings=investblog.settings_local python manage.py runserver 127.0.0.1:8001 --settings=investblog.settings_site2 ```

你應該就可以得到兩個Site了!.


註: 由於我希望兩個頁面的首頁不同, 所以我修改了url.py其中一段

```
if settings.SITE_ID == 2:
    urlpatterns += [
        url("^$", direct_to_template, {"template": "index2.html"}, name="home"),  
        url("^", include("mezzanine.urls")),
    ]
elif settings.SITE_ID == 1:
    urlpatterns += [
        url("^$", direct_to_template, {"template": "index.html"}, name="home"),
        url("^", include("mezzanine.urls")),
    ]
```

參考來源:

https://dashboard.ngrok.com/get-started/setup https://stackoverflow.com/questions/25468676/django-sites-model-what-is-and-why-is-site-id-1 https://stackoverflow.com/questions/40667519/why-is-django-throwing-error-disallowedhost-at https://www.pythonanywhere.com/forums/topic/9655/ https://stackoverflow.com/questions/25793758/django-specifying-url-in-runserver https://stackoverflow.com/questions/44298839/django-redirects-different-links-to-same-page https://stackoverflow.com/questions/30574074/django-how-to-create-duplicate-apps-without-duplicating-the-code-models-sign

tags: Mezzanine
Currently unrated
 or 

Subscribe

* indicates required

Recent Posts

Archive

2023
2022
2021

Categories

Apache 1

Data Science 2

Dbfit 1

Design Pattern 1

Devops 4

DigitalOcean 1

Django 1

English 3

Excel 5

FUN 4

Flask 3

Git 1

HackMD 1

Heroku 1

Html/Css 1

Linux 4

MDX 1

Machine Learning 2

Manufacture 1

Master Data Service 1

Mezzanine 18

Oracle 1

Postgresql 7

PowerBI 4

Powershell 4

Python 22

SEO 2

SQL Server 53

SQL Server Analytics Service 1

SQLite 1

Windows 1

database 8

work-experience 1

其他 1

投資入門 1

投資心得 2

時間管理 1

總體經濟 2

自我成長 3

資料工程 1

Tags

SEO(1) Github(2) Title Tag(2) ML(1) 李宏毅(1) SQL Server(18) Tempdb(1) SSMS(1) Windows(1) 自我成長(2) Excel(1) python Flask(1) python(5) Flask(2)

Authors

Max Chen (159)

Feeds

RSS / Atom

Mezzanine-如何啟動多個Site/如何在本機上測試/並添加不同頁面

© COPYRIGHT 2011-2022. Max的文藝復興. ALL RIGHT RESERVED.