星期五, 1月 12, 2018

Python + Django 學習:來編寫你第一個 Django app 吧!!

來寫你第一個 Django app, 第一步


那就來看指南玩翻譯吧,反正 Django 2.0 的指南教程 也沒人中文化過 XD


來使用範例來學習吧

透過這個指南,能夠引導我們完成建立基本的輪詢應用程式
(poll application, 後面遇到polls我都翻譯成應用程式好了,意指 app)
主要由二個部分組成:

  • 一個公開的網站能夠讓人們看應用程式並對它投票
  • 一個管理站能夠讓你增加、變更跟刪除應用程式

假設已經安裝好了 Django 的話,可以在 shell 提示符號下執行以下命令(前綴符號$)來告訴我們 Django 已經安裝以及哪一個版本
$ python -m django --version
如果安裝了 Django,會看到安裝的版本;如果沒有的話會顯示 "No module named django" 的錯誤訊息。
用這個檢查真的是太方便了,就不用先進到python中在呼喚django出來檢查版本,而是在外面直接用python呼喚django模組來檢查模組的版本,Good
官方預設檢查指令是進入 Python 之後
import djangoprint(django.get_version())
本指南只支援 Django 2.0 以後的版本,且只支援 python 3.4 或是更晚的版本。
如果 Django 版本不符的話(就是你是1.X舊版的),請將 Django 版本更新(但是語法都改了突然更新...)。使用舊版本 python 的話,可以檢查我可以在 Django 中使用那些 Python 版本?可以找到相容的 Django版本。

請參閱如何安裝 Django 來獲得有關如何移除教舊版本的 Django 並安裝較新版本的建議。

接下來巴拉巴哈的部分就交給想看中文的朋友,我只想簡潔的講了

創建一個項目(project)

django-admin startproject mysite
這個部分就是會自動生成一個基礎 Django 項目
需要注意的是內部的套件命名上必須要避開相同類似 django 本身名稱的命名,這個是與 Django 相衝,另外套件命名 test 之類的是與 python 相衝。
在舊有PHP習慣(不使用現代框架)的人可能習慣將代碼放置於 /var/www 底下。使用 Django 的話不用這樣做,因為將這些 Python 代碼放在 Web 伺服器文件檔跟目錄中不是一個好主意,因為有可能使其他人透過 Web 查看代碼,安全性不高。
建議將代碼放在跟目錄之外的目錄中,例如 /home/mycode


基礎建構好的 Django 經過 startproject 會建立目錄跟檔案如下
mysite/ ←裝根目錄的資料夾,名稱與 Django 無關,可以重新命名為其他名稱
    manage.py ←命令程序單元,可以讓你跟 Django 項目進行任何溝通,更多資訊
    mysite/ ←內部的mysite目錄是實際上項目的 Python 封包處,它的名稱是 Python 封包名稱時需要的導入到任何內部需要的名稱。
        __init__.py ←空文件但向宣告 Python 是一個目錄並被認為是一個 Python 封包,如果是一個 Python 初學者,可以閱讀官方 Python 文件中有關於軟體包更多資訊
        settings.py ←這個 Django 的設定(settings)與設置(configuration)
        urls.py ←Django 項目的 URL 聲明設定,支援 Django 站點的目錄。更多資訊
        wsgi.py ←相容 WSGI 伺服器的項目入口點。更多資訊

開發用的伺服器

可以使用指令
python manage.py runserver
來開啟測試伺服器,預設是 127.0.0.1:8000 或 localhost:8000
也可改變測試通通訊埠(注音ㄅㄨˋ,同步),如需要8080通訊埠,則輸入
python manage.py runserver 8080
另外如果有修改 python 代碼的話,不需要重新啟動伺服器使其生效。但是如果是新加入檔案文件的話由於不會觸發重新啟動,需要自行手動操作。
停止伺服器使用 ctrl + d

建立應用程式(Polls app)

使用指令建立
python manage.py startapp polls
這樣會建立一個基礎佈局如下
polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py


編寫第一個 view

編輯polls/view.py
from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, World again. It`s 5th to try play.")
編輯polls/urls.py(沒有就新建,這個在新建的應用程式底下)
from django.urls import path
from . import views
urlpatterns = [
    path('', views.index, name='index'),
]
完成後編輯mysite/ruls.py (這是第二個)
from django.urls import include, path
from django.contrib import admin
urlpatterns = [
path('hello/', include('polls.urls')),
path('admin/', admin.site.urls),
]
其中提到 include 是除了admin.site.urls之外比較建議使用的


這樣應該就能夠真正完成了第一個 Django 的 APP 了
不過我還在跟 pythonanywhere的環境奮戰中,編輯後仍顯示排斥...(?)

後面有進度在發出來

用了一點暴力的手段,現在是強制 python 3.6 + Django 2.0 了
測試之後,除了根目錄無法顯示
Page not found (404)
起因大概是因為沒有指定
但是卻是能夠正常看到hello網址裡下的東西沒錯
但是這樣還是沒有解答我的問題




沒有留言: