發表文章

目前顯示的是 3月, 2018的文章

使用python decouple

在django設定檔中有幾個重要資料例如secret key,資料庫的位址及帳號密碼,debug狀態,allow de host,email host...等等,為了安全性需另外放在安全地方(例如不可以放在git 倉庫中) python decouple提供了一個很好的機制,來將這些資料與你的原始碼做一分離 1.安裝 pip install python-decouple 2.例如你的設定檔如下 import os BASE_DIR=os.path.dirname(os.path.dirname( os . path . abspath ( __file__ ))) SECRET_KEY='3izb^RYGLJ...' DEBUG=True 3.在專案根目錄下建立.env檔案(或是用.ini也可以),若使用git記得在.gitignore加入.env才不會將.env上傳到git hub去 .env內容如下 SECRET_KEY= '3izb^RYGLJ...' DEBUG=True 將設定檔改為 import os from decouple import config BASE_DIR=os.path.dirname(os.path.dirname( os . path . abspath ( __file__ ))) SECRET_KEY=config(' SECRET_KEY') DEBUG=config(' DEBUG',cast=bool) 3.強制類型功能 config可加入要強制的類型資料參數 例如 DEBUG=config(' DEBUG',cast=bool)則代表DEBUG需要是布林的型態

datetime 自動管理

1.django中的DateTimeField與DateField有兩個參數將之設定為true可讓日期時間自動管理  auto_now_add =>在每次新增一筆資料時自動時間設定(create_at)  auto_now  =>每次該筆資料做save動作時,時間自動設定(update_at)

templates filters =>naturaltime

1.安裝Django Humanize 在 INSTALLED_APPS加入 'django.contrib.humanize' INSTALLED_APPS=[ 'django.contrib.auth', 'django.contrib.humanize', ... ] 2使用 在templates檔案中要先load tag {% load humanize %} {{ notification.date |natualtime }} 常用的 template filter filter                       examplae apnumber           1 => one intcomma           4500000 => 4,500,000 intword              1200000 => 1.2 million naturalday          08 May 2016 => yesterday naturaltime         09May 2016 20:54:31 => 29 seconds ago ordinal                3 => 3rd 其餘請參考django document

Django Widget Tweaks

1.安裝使用pip install django-widget-tweaks 2.在INSTALLED_APPS加入 'widget_tweaks': INSTALLED_APPS=[  'django.contrib.auth', ... 'widget_tweaks', ] 3.使用方法: 在範本檔案中使用 開頭必須加上 {% load widget_tweaks %} {{ field |add_class:'form-control' }}

redirect的用法

from django.shortcuts import redirect 基本上redirect也是會傳回HttpResponseRedirect,但使用redirect可以傳入幾種不同參數,讓使用這更方便,首先不用在import django.urlresolvers.reverse redirect可接受三種不同類別參數 1.物件 傳入若是個物件則預設會去呼叫該模組的get_absolute_url()方法 例 from django.shortcuts import redirect from simple_blog.models import Post def post_view(request,post_id):       post=Post.objetcs,get(pk=post_id)       return redirect(post) 2.reverse url name 這可以取代reverse函數 例 from django.shortcuts import redirect from simple_blog.models import Post def post_view(request,post_id):       return redirect('post_details',id=post_id) 3.絕對或是相對url 例 from django.shortcuts import redirect def relative_url_view(request):       return redirect('/posts/archive/') def absolute_url_view(request):       return redirect('https://simpleblog.com/posts/archive/')

SQLite3簡易教學

圖片
SQLlite3是個小型的資料庫,簡單易學,在django預設的資料庫就是使用他,拿來使用做測試開發用途是非常好用的,今天就來簡單講解如何使用它,環境是Window10 下載連結頁面的兩個檔案 https://www.sqlite.org/download.html( 連結 ) 將兩個檔案解開到c:\sqlite3 可以看到紅框中的幾個檔案,sqlite3.exe為主要執行檔,執行後即可進入sqlite3命令列 sqlite> 幾個簡單的指令彙整 1  .tables =>列出所有表格 2   select ...(標準的sql指令) 3  .databases =>列出資料庫的名稱 4  .open =>開啟資料庫 5  .exit=>離開 6  .schema 表格名稱 =>列出建立該資料表的指令 其他詳細資料可以參考 http://tw.gitbook.net/sqlite/sqlite_overview.html( 連結 )