使用Django新增檔案上傳功能
程式碼:https://github.com/jang0820/Django-MyWeb/tree/edb2c650e93a84e184becd0901e1884f4c2fafd2
Step1)在網站新增news應用程式。
#python manage.py startapp news
Step2)編輯/myweb/file/models.py,建立最新消息的資料表
Step3)編輯/myweb/file/admin.py,透過http://127.0.0.1:8000/admin管理資料表News。
Step4)編輯/myweb/file/views.py
Step5)編輯/myweb/file/urls.py,讓url與view結合。
Step6)新增template
新增\myweb\news\templates\news\news_list.html
新增\myweb\news\templates\news\news_create.html
新增\myweb\news\templates\news\news_delete.html
新增\myweb\news\templates\news\news_detail.html
新增\myweb\news\templates\news\news_update.html
新增\myweb\templates\base.html
Step7)編輯/myweb/myweb/urls.py,新增應用程式news的urls
urlpatterns = [
...
path('news/', include("news.urls")),
]
Step8)編輯/myweb/myweb/settings.py
新增news應用程式。
INSTALLED_APPS = [
...
'news',
]
在myweb下建立資料夾media,在settings.py的最後面新增以下設定,所有檔案會自動上傳到/myweb/media/newsfile,會自動新增資料夾newsfile
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Step9)使用超級管理者進行登入,就可以上傳檔案,一般使用者需要有news.news_create權限才能新增公告,需要有news.news_delete權限才能刪除公告,需要有news.news_update權限才能更新公告
超級管理者登入http://127.0.0.1:8000/admin,新增一般使用者news.news_create、news.news_delete與news.news_update權限,如下圖。
Step10)使用剛剛新增權限的一般使用者登入,新增、修改與刪除公告,如下圖