博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通過OPENSHIFT進行DJANGO開發
阅读量:5852 次
发布时间:2019-06-19

本文共 2896 字,大约阅读时间需要 9 分钟。

hot3.png

基於Django框架開發的個人博客近乎完工,就缺關鍵字索引功能和些許頁面的設計,結果BAE停掉了域名綁定服務(不能只使用BAE提供的二級域名訪問吧)。於是,折騰了一些於BAE類似的服務。

目標:*找個支持Python(Django)的平台,開發一款自己的Blog。 *

當然,儘量免費。學生黨,未工作,沒有依賴自己的資金來源——只能需求那些免費的雲服務了。 ##嘗試的雲服務平台 ###Google的GAE Google的GAE貌似對Django的支持不好,沒有嘗試。之前通過GAE搭建過自己的服務,但是在國內無法正常訪問。不過,如果綁定域名之後即可通過域名進行訪問。
如果不是生存在中國大陸,Google的GAE絕對是第一選擇。問題主要出在域名綁定。

  • 不支持.cn域名綁定。
  • Google Apps for Business要花費。一年貌似300RMB左右。想嘗試,但是不支持.cn域名綁定。 在環境許可的條件下,還是優先選擇Google的,不過可惜了。

###HeroKU 之前想學習Node.JS的時候,折騰過。默認也支持Django,本來是準備使用HeroKu的,但是問題在於訪問實在是太慢,官網都得等許久才能顯示。

因為速度慢,調試等操作節奏就很慢——無奈放棄掉了。(應該是校園網絡環境得缺陷吧)。

###SEA、TAE, etc. 相信和BAE一個德行,沒有深入嘗試。進入官網後看看說明介紹,就直接放棄。SAE要什麼豆(變相收費),沒時間折騰;TAE試用,註冊就一堆事項,亦不折騰。

###OPENSHIFT 最終選擇的,可以搭建三個應用,支持域名綁定。速度和HeroKu類似,也很慢。不過文檔支持很好,自動提供的二級域名只能通過https來訪問。

有一點強悍的是支持Django,本地開發調試和上傳等操作真的很方便。唯一難以讓自己接受的是通過git進行代碼update的時候,操作比較多,速度很慢。
還有支持SSH登錄。(雖然執行操作的權限不多,但是真的很好玩)。

最後,文檔支持也是很重要的。GAE、HeroKu和openshift的文檔很豐富;嗯,都是看得明白的英文。

##創建項目 這個就直接查看OpenShift上面的說明文檔。很詳細,只要耐心看下去。

只要能夠安裝和學會rhc即可。 相關鏈接:

#創建項目$ rhc app create MyApp python-2.7#添加服務$ rhc cartridge add mysql-5.1 -a MyApp

此時自己的Web App地址是 (其中MyDomain即是你的OpenShift帳號名)。可以通過https訪問,在國內吧。

##搭建本地調試環境 創建好App之後,即可開始進行自己項目的開發編輯。注意的點是Django版本是1.4。

配置文件setting.py數據庫配置方面有個條件句。內容如下:

if ON_OPENSHIFT:    DATABASES = {        'default': {            'ENGINE': 'django.db.backends.mysql',             'NAME': DB_NAME,              'USER': DB_USER,                                 'PASSWORD': DB_PASSWD,                           'HOST': DB_HOST,                                 'PORT': DB_PORT,                             }    }else:    DATABASES = {        'default': {            'ENGINE': 'django.db.backends.mysql',            'NAME': '',            'USER': '',                                  'PASSWORD': '',                              'HOST': '',                                  'PORT': '',                             }    }

具體操作為:先判斷是否為OpenShift平台,如果是,則配置上面的那個數據庫;否則,即配置下面的數據庫(作為本地開發調試使用)。這樣本地環境和OpenShift環境僅僅在數據庫方面的區別,其它相同,這樣就不必像我之前那樣,在本地開發好後在上傳。

##發佈自己的項目 ###數據庫配置 數據庫地址等等操作都是根據 來設置的。結果悲劇問題來了。

if os.environ.has_key('OPENSHIFT_APP_NAME'):    DB_NAME = os.environ['OPENSHIFT_APP_NAME']if os.environ.has_key('OPENSHIFT_DB_USERNAME'):    DB_USER = os.environ['OPENSHIFT_DB_USERNAME']if os.environ.has_key('OPENSHIFT_DB_PASSWORD'):    DB_PASSWD = os.environ['OPENSHIFT_DB_PASSWORD']if os.environ.has_key('OPENSHIFT_DB_HOST'):    DB_HOST = os.environ['OPENSHIFT_DB_HOST']if os.environ.has_key('OPENSHIFT_DB_PORT'):    DB_PORT = os.environ['OPENSHIFT_DB_PORT']

根本得不到數據方面的信息,必須得在_DB_前添加MYSQL才會有意義。如OPENSHIFT_DB_HOST必須用OPENSHIFT_MYSQL_DB_HOST來替換。這樣才能正常訪問數據庫。 ###域名綁定 直接通過OpenShift官網。登錄後,選中自己的域名,添加alias即可。這也是我選擇OpenShift作為自己的博客開發服務的最直接原因。 ###SSH登錄查看 OpenShift還有個功能就是可以通過SSH登錄到遠程服務。 在終端輸入rhc app show -a App_name後會獲取到該App的所有信息。其中有一相就是SSH地址。

##總結

通過OpenShift開發的Web App的訪問依舊很慢(而且我還大量依賴JS),不過已經滿足了。現在,自己的博客網站 終於可以正常訪問。而且成本花費不高——零投資吧!

转载于:https://my.oschina.net/sunshinedabby/blog/191025

你可能感兴趣的文章
Team Name
查看>>
[LeetCode] Palindrome Linked List 回文链表
查看>>
js控制图片等比例缩放
查看>>
UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
查看>>
大数据公司Palantir融得7亿美元 曾追踪拉登
查看>>
建立备份策略的重要性
查看>>
发力IoT领域 Marvell注重生态系统发展
查看>>
你应该知道的 RPC 原理
查看>>
Ubuntu安装词典
查看>>
Spring解析
查看>>
python中str和repr区别
查看>>
RedHat6 管理应用服务【11】
查看>>
stm32F10x复习-1
查看>>
Linux命令操作大全
查看>>
从周五开始香港主机特别慢,香港主机用户有同感吗?
查看>>
Ember.js 3.9.0-beta.3 发布,JavaScript Web 应用开发框架
查看>>
python标准库00 学习准备
查看>>
4.2. PHP crypt()
查看>>
commonservice-config配置服务搭建
查看>>
连接池的意义及阿里Druid
查看>>