# Getting started - 設定 replit 上的 django >2023/4/1 林冠曄 # Abstract 最近在思考如何在教學最簡單部署 django 而且又可以讓大家的 django 專案給別人看到。於是開始研究 replit 上的 django。 設定上很簡單,而且馬上有個人專屬網址可以用,你做的作品可以給別人玩,不過免費版的速度很慢,但以練習來講足夠用。 如果做完有興趣,可以考慮自建或找伺服器來架設你的專案。 以下簡單講解如何在 replit 設定 django。 # Create project and Setting - 到 [Replit](https://replit.com/~) 建立一個專案,選擇 Django。 ![](https://i.imgur.com/eUl6d1T.png) - 點擊左方 `README.MD` 會告訴你如何設定 `SECRET_KEY`。 ![](https://i.imgur.com/8FayFS0.png) - 到 `Shell` 的地方依序把指令打上去,並複製結果 ```shell= python import secrets secrets.token_urlsafe(32) ``` ![](https://i.imgur.com/jaQRZNc.png) - 左方工具選 `SECRET_KEY`,將結果貼進去。 ![](https://i.imgur.com/7948LIg.png) - 現在按下 `RUN` 就可以看到你的網站初始化完成囉! ![](https://i.imgur.com/jWOvFl1.png) - 你可以把網址給別人,他就可以看到你的網站了。 - 右下角是網站的狀態,包含連線、錯誤訊息,都會顯示在這邊。 # Startapp and HttpResponse 現在我們要來開始第一個 `app`,在 Django 的概念中,我們把同類型功能的東西寫在一起,當作一個 `app`。若有需要也可以把特定 `app` 拿去別的專案使用,很彈性。 ## Startapp 在 `Shell` 的地方打 ```shell= python manage.py startapp hello ``` 其中 hello 是我們範例的 app 名稱,你可打自己喜歡的。 完成後,你會看到檔案多了一個 hello 的資料夾。 ![](https://i.imgur.com/ijjMErI.png) ``` admin.py 用來設定後台看哪些資料的 models.py 用來設定資料庫 tests.py 用來寫測試 views.py 網頁跟後台的溝通邏輯 ``` 這邊我們進入的 `view.py` 來進行一個簡單的範例。 ## HttpResponse `hello/view.py` ```python= from django.shortcuts import render from django.http import HttpResponse def hello(request): result = "<h1>Hello World!</h1>" return HttpResponse(result) ``` - 在第2行匯入 `HttpResponse` - 第4行開始定義一個函數,回傳 `Hello World!` - 當有人瀏覽到這個地方的時候,他就會看到一個大標題寫 Hello World! 接著我們要來設定「路徑」,使用者輸入哪個網址的時候會出現這個畫面。 ## 路徑設定 ### django_project/urls.py 在 `django_project` 的資料夾找 `urls.py`, 並改成如下: ```python= from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('hello.urls')), ] ``` - 第2行新增 `include` - 第6行新增 `path('', include('hello.urls')),` 進行這個設定之後,網址就會去找 `hello`裡面 `urls`的設定了。 ### hello/urls.py 點`hello`資料夾,按 `add file`命名為 `urls.py` 將內容新增如下: ```python= from django.urls import path from . import views urlpatterns = [ path('', views.hello, name='hello'), ] ``` - 第2行意思是將 hello 裡的 views 定義的東西都抓進來。 - 這個地方我們設定網址空空的時候跑到我們剛剛定義的 `hello`裡。 ### django_proect/settings.py 到 `django_project` 找到 `settings.py`,大約在37行的位置有一個`INSTALLED_APPS` 將內容新增 `'hello',` ```python= INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'hello', ] ``` 這個意思是我們「安裝」了剛剛建立的 `hello` 這個 app。 此時重新整理,妳應該就會看到網頁從原本的預設畫面,變成你自己定義的大標題 Hello World!了。 ### Idea 你可以這樣想,現在我們建立一間學校,學校就是你的專案。而學校裡面有好多棟大樓,每棟大樓有各自的功能,這些大樓就是app。 我們剛剛建立了一棟大樓名作 `hello`,並在裡面建立一間教室叫做 `hello`,這間教室黑板上有一個大標題 `Hello World!`。 建立好教室之後,我們要告訴別人怎麼走到這間教室, 於是在學校的公布欄放了一張地圖,告訴他 `hello` 這棟大樓怎麼走。這個就是 `django_project/urls.py` 的功能。 而我們走到 `hello` 這棟大樓後,接著要去剛剛那間教室,於是我們在這棟大樓也放一個路線圖,上面告訴我們怎麼到這間教室。這個就是 `hello/urls.py`。 透過這個方式,我們可以方便管理不同大樓,以及內部有哪些教室,呈現什麼樣的資訊。 # Wrapping up - 你現在可以用 replit 建立 django 專案並執行 - 你現在可以新增 app - 你現在可以寫一個簡單的畫面 - 你現在可以設定路徑