---
# System prepended metadata

title: django入門(三) — 簡單範例(1)-建立app
tags: [django]

---

###### tags: `django`
# django入門(三) — 簡單範例(1)-建立app
## IT邦連結(需使用電腦版瀏覽器):[點我前往](https://ithelp.ithome.com.tw/users/20145754/articles)

全部文章:
[django入門(一) — 介紹與設定開發環境](https://hackmd.io/@aroncode/SkVeqBO2K)
[django入門(二) — 建立資料庫與專案](https://hackmd.io/@aroncode/rkqgL_unY)
[django入門(三) — 簡單範例(1)-建立app](https://hackmd.io/@aroncode/H1qirFdhF)
[django入門(四) — 簡單範例(2)-範本與範本繼承](https://hackmd.io/@aroncode/rkFuiwKnY)
[django入門(五) — 簡單範例(3)-靜態檔](https://hackmd.io/@aroncode/ByL4dFO2Y)
[django入門(六) — 資料模型與填充程式](https://hackmd.io/@aroncode/BJot2iRnF)
[django入門(七) — Django ORM操作](https://hackmd.io/@aroncode/SJec_hA3Y)
# 簡單範例
利用實作一個簡單的網站，邊做邊說明django的各個部分，通過實作能夠更快了解django。

# 新增一個main app
按照下方步驟新增，新增後Refresh即可以看到新增的app。

```
main app：右鍵點擊 project → Django → Create Application → Name: main → OK
```
demo/settings.py裡面的INSTALLED_APPS新增一個'main'
```
INSTALLED_APPS = [
    ...
    'django.contrib.staticfiles',
    'main',
]
```

# 練習第一個函式
main/views.py

```
from django.http import HttpResponse

def main(request):
    return HttpResponse('Hello world! 這是首頁~')
```

寫好一個函式後，我們需要到demo/urls.py設定url mapping。
demo/urls.py
```
from django.contrib import admin
from django.urls import path, include, re_path
from main import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('main/', include('main.urls', namespace='main')),
    re_path('.*', views.main),
]
```
* path('main/', include('main.urls', namespace='main'))：一開始URL為main/，則會進一步比對main.urls內的路徑。
* re_path('.*', views.main)：當所有URL匹配失敗的話，都是由main的views.main處理，也就是會被導向首頁。


接著也要在main app下建立urls.py
右鍵點main → New → File → File name: urls.py → Finish
```
from django.urls import path
from main import views


app_name = 'main'
urlpatterns = [
    path('', views.main, name='main'),
]
```

# 測試
我們完成了第一個函式也規劃相關的URL路徑，接著我們啟動專案。
瀏覽器輸入:http://127.0.0.1:8000/main/
可以看到網頁上顯示 Hello world! 這是首頁~


