2019年4月29日 星期一

以Pycharm為例設定Django專案static資料夾


之前提到過template,

為了調整版面或者調整字型或者顏色等等,

會幫網頁加入CSS檔案,

舉凡css , js , img 等等這些檔案通常會找個固定的資料夾存放,

而這個資料夾在Django如何設定,

就是今天的主題了:

以Pycharm為例設定Django專案static資料夾






首先找到專案的settings.py,

確定

django.contrib,staticfiles

是否在INSTALL_APPS中


INSTALLED_APPS = [
     ..省略..    'django.contrib.staticfiles',]

如果專案有使用此套件而且DEBUG=True,

可直接在網址列確認該檔案是否已經在網站,

這在開發上比較方便,

但不適合正式上線使用,

所以正式上線時記得要設定為

DEBUG=False



設定靜態檔案資料夾很簡單,

將底下三個設定加到settings.py中即可

# Static files (CSS, JavaScript, Images)# https://docs.djangoproject.com/en/1.11/howto/static-files/
STATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR, 'common_static')
STATICFILES_DIRS = [
    'web_pay_v2/static',]


這三者有何不同呢?


STATIC_URL = '/static/'

設定對應到靜態檔案資料夾的網址,

Pycharm預設已經帶入此設定,

template引用時候帶入

{% load static %}




STATIC_ROOT

在指令行打上

python manage.py collectstatic

會將專案中的static檔案複製一份集中到此資料夾,

在apache或者nginx部屬專案時候使用



STATICFILES_DIRS

手動方式指定靜態檔案存放的資料夾,

要使用static檔案的時候,

系統會來找尋在此列表中的資料夾



如果要讓Django自動尋找各個app中的static資料夾,

在settings.py中必須有底下元件,

Pycharm預設並無此設定需要手動加入

STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",    "django.contrib.staticfiles.finders.AppDirectoriesFinder")





2019年4月27日 星期六

Django專案template模板範例教學


如同之前介紹過的Django與MVC架構類似,

是所謂的MTV架構,

而View視圖已經介紹過,

緊接著利用上次新建的專案,

來進行今天的主題:

Django專案template模板範例教學


底下是今天範例的目標,

透過參數傳遞,

將時間這個區域變數傳遞到template中顯示.


首先到url.py先設定一個URL到views

from Firstweb.views import test_template


urlpatterns = [
    path('test_temp', test_template.sample1),

接著到對應的test_template.py設定視圖

from datetime import datetime
from django.shortcuts import render


def sample1(request):
    time_now = datetime.now()
    return render(request, 'sample_template1.html', locals())

render第一個參數request ,

主要傳遞GET/POST送出的資料,

第二個參數表示template的名稱,

而locals()表示要傳遞此處所有的區域變數,



這邊以Pycharm為範例新增一個template:

在左邊檔案樹狀結構中找到templates資料夾,

並在其上按滑鼠右鍵,

在選單中選擇新增一個html檔案,



是的,

Django的template就是一個html檔,

要顯示在網頁上的所有內容都寫在模板中



IDE軟體會自動帶入最基本的html標籤





{{ time_now }}
加入body中,

template本身有自己的語法,

變數的表示法以雙大括號包住

{{   變數 }}

設定好了就能執行

python   manage  .py   runserver

或者

按下IDE軟體的執行按鈕,

就能在瀏覽器中看到呈現的時間

2019年4月26日 星期五

[影視戲劇]時空線索


今天要來介紹一部老片,

片名為 :

時空線索

上映日期為2006年11月,

影片一開始就是描述在郵輪在早上十點五十分發生爆炸,

而男主角道格就是奉命來此調查此爆炸案,



 後來發現女主角克萊兒屍體,

檢查過後發現,

該女子與爆炸案原因或許有關係,

後來調查人員請道格觀看四天前的監視影片,

想藉此找出兇手,

觀看過程中,

道格發現監視畫面中的女主角能夠感受到遭受監控,

以雷射筆試探才發現,

此監視畫面是經過蟲洞觀看四天前的現實世界影像,


這下道格就坐不住了,

雖然已經透過觀看影像抓到兇手,

他認為既然可以送紙張回過去,


那何不送人回去阻止爆炸,

於是親身體驗了下,

蟲洞傳送,

最後雖阻止爆炸,

但自身卻犧牲了,




故事當然不是這樣就結束了,

此片是提及平行宇宙的影片之一,

由於現在的道格回到過去阻止了爆炸,

也救了原本應該死去的女主角,

時間流向因此出現分岔,

平行宇宙也因此產生,

雖說回到過去的道格死去,

但在該時空中的道格還是活跳跳的,

英雄救美還算是成功的,



有興趣的看官可以找來觀看,

算是一部合情合理的科幻片,

整體還是不賴的