iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 10
2

1. 安裝Python

首先要安裝Python
先確認一下目前的環境之前有沒有安裝過

python3 --version

如果沒有,可以到這裡按照環境教學安裝

確認你安裝好3.4.1以上的版本

2. 創建虛擬環境 (Optional)

為了避免與其他語言或本機設定產生干擾
建議運作在虛擬環境(virtual environment)內
先新增一個Django專用的目錄

$ mkdir django
$ cd django

接著用這個指令 (Mac)

$ python3 -m venv first_env
$ . first_env/bin/activate
(first_env) user_name:django Username$

當你看到最後一行前面出現(first_env)就是成功了!
當然這也可以替換為任何你喜歡的小寫名稱,不過盡量保持簡短

3. 安裝Django

(first_env) $ pip install django==1.6.6

注意是兩個等號
如果有出現Successfully installed django
就是安裝成功了!

4. 新增專案

事情進行得比我想像中還要順利
現在我們來新增一個名為mysite的專案

(first_env) $ django-admin.py startproject mysite .

這樣就會產生一個新的資料夾,裡面有預設的檔案

5. 建立資料庫

先別急著切進資料夾內
預設的資料庫為sqlite3,我們先把資料庫建起來

(first_env) $ python manage.py syncdb
...
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes

如果是第一次安裝,他會要你設定一個超級管理員帳號
預設username是你的電腦名稱
還需要一組密碼

6. 啟動伺服器

接下來我們就可以叫起server囉

(first_env) $ python manage.py runserver

如果訪問 http://localhost:8000
你現在就可以看到
Django welcome page
跟phoenix與rails比起來,這個初始頁面還蠻陽春的

老樣子 control + c可以離開


雖然伺服器已經起來了
但如果今天就停在這邊,我覺得對不起自己的自尊心
所以我們會繼續下去

7. 建立App

首先我們來建立一個名為blog的app
在django會將不同功能稱呼為app
一個網站下會有多種不同的功能,例如:會員管理、相簿、交易等等

(first_env) $ python manage.py startapp blog

建立之後,必須在之前mysite的setting file註冊這個app

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
)

8. 建立model

Django沒有scaffolding工具,所以我們必須一步一步自己來
首先打開blog/models.py,把裡面清空然後複製貼上下面的code

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User

class Post(models.Model):
    author = models.ForeignKey(User)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

然後再執行一次:

(first_env) $ python manage.py syncdb

就會新增對應的model到資料庫當中

9. 操作Admin功能

打開blog/admin.py,並且複製貼上下面的內容:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

接著再把你的伺服器打開
拜訪 http://localhost:8000/admin
這個時候他會需要你登入剛剛創建的帳號密碼
登入後,你就可以開始使用看起來簡陋但是基本功能完善的Admin功能囉
Admin page
試著編輯一下資料吧!

參考資料


上一篇
Phoenix起步走:快速產生CRUD頁面
下一篇
Laravel起步走:環境建置與安裝
系列文
新時代的網頁框架比較-- 淺談Rails、Django、Phoenix、Laravel31

尚未有邦友留言

立即登入留言