Django系列 資料庫(一)
後來交出去的圖書館館藏系統用的資料庫其實是MSSQL當初為了能讓Django能夠連上MSSQL也是耗費了不少心力之後有機會的話希望再整理一下補上
架設資料庫預設Django是使用SQLite,如果需要使用其它資料庫要改mysite/settings.py中DATABASE的引擎,這邊先記錄SQLite的寫法。MSSQL參考:https://pypi.org/project/django-pyodbc-azure/
settings.py 內的INSTALLED APPS講解(預設)
讓Django查看settings.py裡的設置,INSTALLED APPS裡的東西都可以隨意註解掉(如果不需要的話)
$ python manage.py migrate
在polls/models.py中建立資料庫會用到的class(schema)
在mysite/settings.py中告訴Django我們新增了一個APP
接著告訴Django我們已經對Models進行了修改(這邊是新增Class)migrations的作用就是針對進行修改的部分,告訴Django儲存(把剛剛修改的效果遷移 ...
Django系列 介面(Views)
Django是一種基於Python開發網頁的架構這篇文章主要就是針對MVC中的V做修改
還記得第一次用到MVC架構是在寫Android Studio時當時只學了一學期Python、一學期Java甚至還對寫程式有莫名的恐懼與厭惡那個時候的我還沒有感受到架構的好現在才體會到、想學各種架構卻發現時間不夠用啊!
建立Views
在polls/views.py裡面設定函數
當calling這些url時應該回傳上面的views
舉例來說,以下分別輸入urls中設定的網址,會成功回傳在view.py裡函數所設定Response的內容http://127.0.0.1:8000/polls/
http://127.0.0.1:8000/polls/5/
http://127.0.0.1:8000/polls/5/results/
http://127.0.0.1:8000/polls/5/vote/
在polls下建立一個名為templates的資料夾,接著在建立一個名為polls的資料夾,最後在裡面新增一個名為index.html的檔案。以及修改view.py讓index這個函數能夠呼叫我們所 ...
Django系列 建立第一個專案
大學時曾經學過Django,架在了AWS上但是當時年輕不懂事,沒有好好地聽老師上課結果過了幾年,又需要用到,只得自己研究這份筆記是研究所在寫資料庫的課堂作業時根據Django的官方教學文件做出的筆記
建立專案
確認django版本$ python -m django --version
建立專案$ django-admin startproject mysite
建立出來的檔案結構—mysite/——manage.py———mysite/————-init.py————-settings.py————-urls.py————-wsgi.py
• 外部的 mysite/ 隨時能更改命名• manage.py 創建了DJANGOSETTINGS_MODULE 的環境,功能就跟django-admin一樣,可以用來與專案互動• 內部的 mysite/ 是Django真正的Python package,名字很重要• _init.py 告訴Python這個目錄應該被視為Package• settings.py 專案的設置• urls.py Djang ...
PHP-MySQL系列 Ajax簡單應用
因為最後一堂課同學們一心都撲在了期末作業上所以我為同學們準備了比較輕鬆的內容利用Ajax更新部分頁面區塊,以節省資源
利用Ajax處理事件,比如刪除資料不需要refresh整個page本周是與ajax相關的基本知識:
先測試123456789101112131415<!DOCTYPE html><html leng="utf-8"> <head> <title>Ajax 練習</title> </head> <body> <button id="btn">test</button> <script> document.getElementById('btn').addEventListener('click',myfun); function myfun(){ ...
PHP-MySQL系列 登入與註冊系統
在製作登入與註冊系統前必須先理解Cookie與Session的概念簡單來說,Cookie是本地端紀錄你的登入狀況Session則是伺服器端紀錄你的登入狀況推薦一篇淺顯易懂的文章給大家:白話 Session 與 Cookie:從經營雜貨店開始
建立所需的頁面
其中包含了
config.php:連線資料庫的基本檔案
index.php:預設的首頁(登入頁面)
login.php:處理登入
logout.php:處理登出
register.php:處理註冊
register.html:註冊頁面
welcome.php:登入成功後出現的頁面(裡面包含一個登出的連結)
連線資料庫config.php是與資料庫有關的設定檔
1234567891011121314151617181920212223242526<?php/* Database credentials. Assuming you are running MySQLserver with default setting (user 'root' with no password) *//*define( ...
PHP-MySQL系列 文件上傳
這篇文章主要在介紹基本的上傳文件加入一些檢核的判斷句可以防止使用者亂傳東西上來
文件相關基本函數開啟文件fopen()關閉文件fclose()讀取單行fgets()讀取單字符fgetc檢查文件結尾feof()想學更細的:https://www.w3schools.com/php/php\_file\_open.asp
文件上傳前置作業
要先開啟php.ini中的file_uploadsinput標籤的
type必須為file
method要是post
enctype要是multipart/form-data
enctype屬性指定將表單內容提交到Server時應如何編碼
全域變數$_FILES假設input了一個name=’userfile’的欄位則$_FILES陣列中包含了下面幾個元素:
12345$_FILES['userfile']['name'] //local端的檔案原名稱。$_FILES['userfile']['type'] //檔案的 MIM ...
PHP-MySQL系列 資料庫練習-連接、創建表格、插入資料
因為之前曾經用過MSSQL所以相對的覺得PHP+MySQL整個已經包好還有後臺管理系統可以用、簡單了很多但是老師說,因為牽扯到資料庫的語法同學們會需要花更多時間去重複練習
正確連至資料庫在phpmyadmin中建立db
建立config.php12345678910111213141516171819202122232425262728<?php/* Database credentials. Assuming you are running MySQLserver with default setting (user 'root' with no password) *//*define() 函數定義一個常量。在設定以後,常量的值「無法」更改不需要開頭的美元符號 ($)作用域不影響對常量的訪問常量值只能是字符串或數字*/define('DB_SERVER', 'localhost');define('DB_USERNAME', 'root');define('DB_PA ...
PHP-MySQL系列 資料庫練習-SELECT & DELETE
在PHP+MySQL中除了需要熟悉PHP和MySQL個別的語法以外我認為關於GET與POST的運用也很重要因此接續上篇新增資料庫與資料表後要學習的是SELECT & DELETE
資料庫活用=>把在資料庫裡的東西都列出來會用到mysqli_num_rows()與mysqli_fetch_assoc()在stackoverlow中有人整理了幾個很詳細的用法:https://stackoverflow.com/questions/18577774/differences-in-mysqli-fetch-functions
SELECT
新增一個list.php
12345678910111213141516171819<?php $conn=require_once('config.php'); $sql="SELECT * FROM tb3"; $result = mysqli_query($conn,$sql); if (mysqli_num_rows($result) > 0) ...
PHP-MySQL系列 網頁切版
在同一個網站的不同網頁中,可能常常出現重複的內容比如header、footer之類的如果每次修改都需要一次大量修改肯定會造成不小的麻煩因此利用require和include省去這樣的麻煩並且運用在網頁切版這篇文章示範了固定頁首頁尾,僅變動內容的切版方式
require與include
require與include的差別
require的Script如果有缺失,就會整個檔案不能跑
include的Script如果有缺失,只會顯示警告
同樣的內容,如Header、footer之類的一直會重複用到,我們用include簡短我們的程式碼先建立像下面一樣的網站結構:
網頁切版範例index.php 作為框架,裡面include了固定的header.php以及footer.php,除此之外還有變動的內容content/...
12345678910111213141516171819202122232425262728293031323334353637383940<!DOCTYPE><html> <head> < ...
PHP-MySQL系列 Form表單(二)
這篇文章又針對表單進行了一些進階的寫法比如加入程式碼計算使用者年紀或是加入審核機制防呆等
算出使用者年紀用到date、strtotime
12$now=date("Y");$birth_year=date("Y",strtotime($birth));
123456789$birth=$_POST["birth"];$now=date("Y");$birth_year=date("Y",strtotime($birth));echo "<h1>Hello world! Welcome ".$username."!</h1><br>". "你的密碼是:".$_POST["password"]."<br>". "你的性別是:".$sex."<br>". "你的生日 ...