2020年9月17日 星期四
2020年9月11日 星期五
[Django] 0. Intro
- What is Django?
- 簡單說, 是一套 free & open source 的 python web server-side framework, 按照 MVC (Model-View-Controller) model 設計, 已內建許多 features, 包含 authentication / session 等基礎建設
- Architecture
- Tutorials
[Django] 1. Architecture
- Architecture
- Route + Model-View-Template
- urls.py:
- 負責做 url 的 route, pattern matching, 並把 request pass給對應的 view function.
- views.py:
- 屬於 django 的核心, 比較算是 MVC model 中的 controller, 由各 view針對 request 做出 response, 中間的過程可能包含了 template generation 與 model (database) 的 read/write.
- models.py:
- MVC model 中的 Model, 將資料庫細節抽象化, 以 class 方式來做存取.
- templates:
- html 檔案的位置, MVC 中的 views, 相關 CSS 設計, html div 規劃皆在此.
- Resource
2020年9月9日 星期三
[Web] Bootstrap with CSS / JS template
- What is Bootstrap?
- responsive open source front-end toolkit
- 簡單說, 就是快速的套用設計與互動模組, 並且支援各種 devices
- Usage
- 從 starter template 入手, 參考 examples 使用對應的 codes
- CSS
<!-- CSS only -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
<!-- JS, Popper.js, and jQuery -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"></meta>
[Tool] using gnu-sed on Mac OSX
- 問題:
- Mac OS 上的 sed 為 BSD sed, 與 Linux上的 gnu sed 差異非常大, 像是不支援 -i, -e 等, 相當煩人
- 解決方法:
- 方法一: 用 brew 安裝 gnu-sed, 並將 PATH 環境變數優先指到 gnu-sed$ brew install gnu-sed
$ vim ~/.bash_profile PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH" $ source ~/.bash_profile
- 這我就不贅述了, 可以參考 GNU sed on Mac OS X 這篇
2020年9月5日 星期六
[Python] pyenv - Python 版本管理工具
- What
- pyenv 是一套管理 Python 版本的好工具
- Installation
- MacOSX
- Homebrew (本來都是用 MacPorts, 但要克服滿多問題, 趁這機會改用 Homebrew玩玩)
-
brew install pyenv
-
若需要安裝 Homebrew, 可用以下指令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
- Note: Mac OSX 上一般套件管理會選擇使用 MacPorts 或 Homebrew, 各有優缺, 兩個都是會拉 source code, build, install, 比較大的差異是
- MacPorts 較不依賴系統 libraries (intall package會需要較長時間), 且安裝在 /opt/local/ 下 (權限較沒問題)
- Homebrew 依賴系統 libraries, 且安裝在 /usr/local 下
- Reference: 比較 Fink, macports, 和 homebrew
- Usage
- 可安裝清單:
pyenv install --list
- 已安裝版本:
pyenv versions
- 安裝版本(e.g. 3.7.4):
pyenv install 3.7.4
- 系統切換版本:
pyenv global 3.7.4
- session 切換版本:
pyenv local 3.7.4
- Reference
2020年9月3日 星期四
[NAS] 讓 NAS 能在區網外做外部存取 (external access)
- Router setting
- 若 server 是架在區網內, 且區網透過數據機與 Router 來連接 Internet, 則 Router 的部分應該要注意以下三個部分: (以 Synology來說, 也可透過 Synology的服務, 來進行設定).
- WAN(Wide Area Network): 設定 Router 對外連網
- 注意是動態 IP or 靜態 IP 上網
- 以 Hinet為例, 20Mbps以上的資費即可申請固定 IP
- 撥接的帳號通常也不太一樣 (e.g. Hinet 固定 IP 用 yourHinetID@ip.hinet.net帳號, 動態 IP 則用 yourHinetID@hinet.net 當帳號)
- DDNS (Dynamic Domain Name Service): 註冊 Domain Name, 每次連線自動配對 Domain Name與動態取得的 IP
- NAT (Network Address Translation): 轉換對外 port 與 Router 內部機器的 port
- Reference
訂閱:
文章 (Atom)