0. 前言
最近因為學了python,順手用了django框架搭建了自己的博客二蓝。發(fā)現(xiàn) pythonanywhere 居然還能提供免費控件熊赖,且對pythoner非常友好击吱,就把自己的博客部署在pythonanywhere(順便說一句:免費就別想著有多好用了~慢死了 ~)了,順便寫下該文以免自己忘記瘟芝。
本文包括兩部分:
- 直接在pythonanywhere新建django項目(為啥有這部分呢币叹,因為我很作死地試了兩種方法,各種踩坑模狭,淚流滿面啊~)
- 在python anywhere上部署已有項目
1. 部署前須知:
1.1 部署環(huán)境:
- python 3.5.2
- django 1.10
- 數(shù)據(jù)庫采用Django 自帶的sqllite3
2 直接在pythonanywhere新建項目
流程:
注冊->新建web項目->修改urls.py->修改views.py
-> reload 你的web
2.1 注冊
點擊右上角 ** si'gnup **颈抚,在界面選擇Beginner acount (只有這個才是免費用的~)
- username最好起容易記的,因為你的域名就是
- 【username】.pythonanywhere.com
- 填完郵箱會發(fā)一封郵件但是郵件里面沒有鏈接需要點擊嚼鹉,(英語不好的同學可以直接不看了贩汉,別像我一樣傻傻的等了半小時郵件锚赤,外加看完全部才知道忘記密碼的時候才需要郵箱驗證)
2.2創(chuàng)建項目
- 點擊右上角Dashboard 進入該畫面
- 新建web-app
然后按照提示依次選擇框架和版本线脚,完成配置:
next -> django -> Python3.5 -> next
2.3 修改urls和views文件
這時候相當于在我們服務(wù)器端建了一個django項目了
進入files分頁
編輯urls文件如圖
from django.conf.urls import url
from django.contrib import admin
from . import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^',views.index)
]
新建 views.py文件 將以下代碼復(fù)制粘貼:
from django.shortcuts import HttpResponse
def index(request):
return HttpResponse('hello,world')
保存
回到Web頁面,點擊Reload按鈕~
好的姊舵,我們的準備工作做完了,地球人們舉起你們的雙手寓落,見證奇跡的時刻到了
在瀏覽器輸入{username}.pythonanywhere.com
比如我的測試賬號是:coldwinter.python.com
看到你的django web向世界發(fā)出的問候沒~
- 好吧非程序猿不懂這個梗
說點正事
在pythonanywhere上新建項目這樣了括丁,接下來就是編寫各種models.py views.py temlates 這些正常djangoer 該做的事情了,你之不過當它一個webide用了~
寫完一個功能記得reload~
好了重點來了伶选,你是不是覺得在網(wǎng)站新建項目然后進行開發(fā)特別慢呀(反正我是受不了請看下一章:部署已有項目到Pythonanywhere)
3. 部署已有項目到pythonanywhere
先上一波流程圖吧:
準備工作:
- 把你的瀏覽器更新到最新版本(我的google就因為不是最新版本而打不開網(wǎng)站上的bash)
- 將你的項目上傳到githunb(git大法好呀J贩伞)
好了,廢話少說仰税,開擼构资!
3.1注冊登陸
這個參照2.1
3.2新建終端
在consoles界面新建bash(可能有點慢,那個陨簇,免費就別要求那么多啦)
從github上clone一份代碼注意是https開頭不是git開頭那個 (git開頭的用ssh協(xié)議然而你又沒添加公鑰是不能隨便傳輸文件的)
比如我的是
git clone https://github.com/coldsummerday/djangoblog2.0.git
然后
3.3創(chuàng)建虛擬環(huán)境
cd mysite
virtualenv --python=python3.5 myvenv
source myvenv/bin/activate
記住virtualenv一定要指明python版本
默認好像是給你安裝python2.7的虛擬環(huán)境
其中 mysite 是你的項目名吐绵,myvenv 是你的虛擬環(huán)境目錄名。
3.4安裝第三方包(首先裝上django)
比如我用了bootstrap-admin,markdown 兩個包
pip install django
pip install bootstrap-admin
pip markdown
安裝完記得
pip list
看下你安裝的包 版本是否同你開發(fā)所用的版本
然后(如果你用的是自帶的sqllite,請?zhí)D(zhuǎn)3.6)
3.5配置mysql數(shù)據(jù)庫
配置數(shù)據(jù)庫mysql拦赠,先自己起個密碼巍沙,信息全在database頁面中
修改settings.py文件文件在項目同名文件夾中
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '{yoursitename}',
'USER': '{root}',
'PASSWORD': {'********'},
'HOST': '{你的注冊名字}.mysql.pythonanywhere-services.com',
}
}
{}中的信息請按自己詳細信息填寫
3.6更新數(shù)據(jù)庫
如果你是用的是django自帶的sqllite
請 cd到項目根目錄下,當前目錄有manage.py文件
python manage.py makemigrations
python manage.py migrate
3.7修改setting.py文件
進入到 Files 欄目中荷鼠,編輯 settings.py 文件句携,修改其中的 ALLOWED_HOST 值,把你項目的域名添加進去允乐。
修改示例:
ALLOWED_HOSTS = ['username.pythonanywhere.com']
3.8 新建web-app
進入web欄目矮嫉,選擇
Add a new webapp -> next -> Manual Configuration -> Python3.5 -> next
3.8修改wsgi文件
1.按照要求填寫正確的項目文件夾
2.修改 WSGI 文件
wsgi.py文件中。
我項目的setting.py 文件在
/home/zhou/djangoblog2.0/project/project/setting.py
path跟 os.version就該這樣寫
記得注釋掉這段代碼
3.9其他web配置
最后我們再設(shè)置一下虛擬環(huán)境路徑牍疏,以及靜態(tài)文件路徑蠢笋,本地項目中有 media 文件的小伙伴仍需要設(shè)置 media 路徑。
(虛擬環(huán)境 安裝在哪兒就寫哪兒)
比如我的是 在/home/coldsummer/zhou/djangiblog2.0/ 目錄下創(chuàng)建的虛擬環(huán)境myvenv
所以我的路徑
/home/coldsummer/zhou/djangoblog2.0/myvenv
4.0 好了鳞陨,reload一波你的網(wǎng)站昨寞,輸入域名
(我草,怎么出現(xiàn)這個)
淡定厦滤,至少證明你的django項目已經(jīng)部署上去了援岩。只是有些許bug而已
發(fā)現(xiàn)是無法找到post.html, 然后打開error頁面掏导,
templates文件夾找不到
(最笨的方法享怀,標明絕對路徑 但是不方便項目遷移)
有好的方法請分享~(原諒我只是一只初級猿)
修改:
setting.py中的DIRS路徑
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/home/zhou/djangoblog2.0/project/templates/'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
好的添瓷,reload一波值纱,神奇的畫面出現(xiàn)了
好了计雌,該畫面就是鄙人 的博客0.1了
** 2017.2.20**
借鑒自該教程凿滤,但是一路過來確實踩了不少坑
簡易博客開發(fā)