Django學習筆記(1)-建立專案,HelloWord!

距離上次寫Python已經是八年前了吧…大學的時候寫的:P

最近想重新溫習一下,就直接挑最火紅的Django框架+Python3來試試看~

順便作一下筆記

安裝Django

pip3 install Django==2.1.3

更改預設指令

$> vi ~/.bash_profile  

alias python='/usr/local/bin/python3'
alias pip='/Library/Frameworks/Python.framework/Versions/3.7/bin/pip3'

$> source ~/.bash_profile

建立django-admin的捷徑

ln -s /Library/Frameworks/Python.framework/Versions/3.7/bin/django-admin /usr/local/bin

在安裝好Python與Django的狀況下,可以透過 django-admin.py 或是 django-admin 來建立起專案

django-admin startproject HelloWorld

進入專案資料夾中,建立起伺服器(預設值為127.0.0.1:8000)

python manage.py runserver 127.0.0.1:8000

接著在瀏覽器上直接訪問就可以看到預設好的首頁了!
接著寫一個HelloWord來試試~先建立一下首頁用的檔案

$> cd HelloWorld
$> mkdir controllers
$> index.py

然後在 index.py 建立一個我們要用的函數

# -*- coding: utf-8 -*-
from django.shortcuts import render

def index(request):
    view_data          = {}
    view_data['hello'] = 'Hello World!'
    return render(request, 'index.html', view_data)

接著建立一下要用的view

$> mkdir views
$> index.html

把要顯示的首頁給做好~預計傳一個叫做hello的參數給view

<!DOCTYPE html>
<html lang="en">
<head>
<meta
    http-equiv="Content-Type"
    content="text/html; charset=UTF-8"
>
<meta
    name="viewport"
    content="width=device-width,initial-scale=1"
>
<title>Python First!</title>
<meta
    name="description"
    content=""
>
</head>
<body>

<!-- hexo顯示上BUG的關係需將X刪除 -->
<h1>{{ hello }X}</h1>

</body>
</html>

在controller跟view都搞定後~接著就是告訴django我的controller跟view的位子了~來修改一下 urls.py

from django.contrib import admin
from django.urls import path
from .controllers import index "這裡把controller引進來"

urlpatterns = [
    path('admin/', admin.site.urls),
    path(r'^$', index.index), "這裡加上哪個controller裡的哪個函數"
]

再來修改 settings.py 中的 TEMPLATES 定義

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR+"/HelloWorld/views",], "這裡放上view的路徑"
        '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',
            ],
        },
    },
]

接著執行後就完成了!搞定~

source: https://github.com/linmasahiro/django_helloworld