iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
自我挑戰組

BeautifulSoup網頁爬蟲佐Django伺服器框架附AWS雲端運算服務系列 第 11

[Day 11] 第一主餐 pt.4-Djgnao,進化

在上一篇我們成功運行了django專案
今天我們要來加點東西,讓我們的django成為一個web框架完全體啦
廢話不多說,咱們累狗~

開始之前,先debug

好的,讓我們重返我們的錯誤頁面

可以看到我們的跳錯訊息是DisallowedHost
接著我們轉看我們的console

可以看到有個錯誤訊息如是說

Invalid HTTP_HOST header: '172.16.15.123:8000'. You may need to add '172.16.15.123' to ALLOWED_HOSTS.

這就代表這個IP位址不被django接受,請把他加到允許清單內
那這加上去的方法也非常簡單,打開我們stonks_root內的setting.py
可以看到有一行叫做

ALLOWED_HOSTS = []

我們把172.16.15.123加入ALLOWED_HOSTS內,變成這樣

ALLOWED_HOSTS = ['172.16.15.123']

然後我們重新執行一次,再進入一次http://172.16.15.123:8000

看到這個火箭就表示成功啦

我的家在url,你的家在url

接著我們再稍微做點修改
但是在修改之前我們先來講講url的兩三事
我們前面提到過每個IP代表著每個房間位置
可是一個房間總不可能只做一件事
通常會有其他不同的小區域去區分哪個地方該做啥事
這就是url的功用
大家可以看看這個iT邦的url
https://ithelp.ithome.com.tw/articles/10269654
前面https://ithelp.ithome.com.tw 這個東東代表這個地方的網域
簡單來說就是一個IP地址的化名,這樣大家也比較好記
就跟你打碰面地點在台北市信義區信義路五段7號,大半的人只會覺得這鬼地方在哪
但你講說在台北101碰面,事情就好辦很多了
這就是網域的概念
而後面的articles/10269654就代表著他告訴你要做的事情
如果你可以做,就照著上面的東西做
如果你發現這事情不能做,例如叫你24小時用跑的繞台灣一圈
這時server就會賞你一個404,叫你去看醫生
以上就是url的講解

好的,我們回到django部分
現在我們開啟urls.py
你應該會看到下列程式碼

"""stonks_root URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

現在我們多import兩個東西
from django.conf.urls import url
from . import views
一個是url,一個是等等我們要建立的views.py
然後我們的urlpatterns加上
url(r'^$', views.index_page),
前面的r'^$'代表這東東是正規表示法,至於那是啥如果後面有篇幅再詳細講解
現主時你只要知道這東東代表如果後面沒啥東西就直接坐後面那件事就好
甚麼事呢
views.index_page
這東西代表著執行views.py內的index_page函式

然後此時你就會發現
阿怎麼沒views.py
簡單,建立一個就好
建立完views.py後,把這段程式碼貼上去

from django.http import HttpResponse

# Create your views here.
def index_page(request):
    return HttpResponse("Hello World!")

這段程式碼就代表著當index_page被叫到時,就執行return HTTP為"Hello World!"的內容

好了,寫到這邊,快來看你的成果吧
一樣重新輸入http://172.16.15.123:8000/

看到Hello world,你的框架就成功運行啦

到這邊,我們終於成功的小幅度修改django程式碼
並且平安無事的運行了
下一步我們將會安裝資料庫,並且跟django串接起來
想知道如何用django做資料庫操作,讓你在跟主管面試時可以各種吹牛
且待下回分解~


上一篇
[Day 10] 第一主餐 pt.3-Djgnao與網頁間的連結
下一篇
[Day 12] 第一主餐 pt.5-MySQL Django一起串聯,就是這麼簡單
系列文
BeautifulSoup網頁爬蟲佐Django伺服器框架附AWS雲端運算服務30

尚未有邦友留言

立即登入留言