2018 Fall 期末專案示範網站

課程專題 << Previous Next >> 計算機程式議題

計算機程式

Learn to Program with Python 3: https://link.springer.com/book/10.1007/978-1-4842-3879-0 

The Blender Python API: https://link.springer.com/book/10.1007/978-1-4842-2802-9 

虎尾 科技大學機械設計工程系的計算機程式課程網頁位於: http://mde.tw/cp2018/ 

本課程的目的在讓學員了解如何利用 Python 程式解決問題:

PyQt5 視窗程式

問題一: 能否利用 Eric6 建立一個視窗程式, 開啟 CMSimfly 系統中位於 config 目錄下的 content.htm? 甚至可以套用 QPlainTextEdit widget 顯示 html 原始碼, 並利用  QWebEngineView render 超文件.

例如: https://github.com/gen2brain/pyhtmleditor (使用 PyQt4 格式)


Eric6 Qt Design 實際練習:

http://doc.qt.io/qt-5/designer-quick-start.html 

Using Qt Designer involves four basic steps:

  1. Choose your form and objects (選擇需要的表單與物件)
  2. Lay the objects out on the form (將物件布局在表單上)
  3. Connect the signals to the slots (將訊號連結至插槽)
  4. Preview the form (預覽所完成的表單)

所完成的 Eric6 專案: cp-project.7z

Qt Designer 布局: http://doc.qt.io/qt-5/layout.html 

Qt examples: http://doc.qt.io/qt-5/qtexamples.html 

https://github.com/baoboa/pyqt5/tree/master/examples/mainwindows/mdi 

為了能以 UTF-8 開啟檔案, 必須加入:

instr = QTextStream(file)
instr.setCodec("UTF-8")

http://eric-ide.python-projects.org/tutorials/MiniBrowser/ 

https://www.binpress.com/building-text-editor-pyqt-1/ (https://github.com/goldsborough/Writer-Tutorial )

Flask 網際程式

最簡單的 Flask 程式, 存為 wsgi.py:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

app.run(host='127.0.0.1', port=80, debug=True)

利用 SciTE 開啟上述程式後, 以 Tool -> Go, 即可以瀏覽器開啟 http://localhost , 系統回傳 "Hello World".

假如要讓上述 Flask 程式在 https 模式下啟動, 在 Windows 操作環境, 需要 http://gnuwin32.sourceforge.net/packages/openssl.htm ,  以下列指令建立 localhost.key 與 localhost.crt

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt

並將 localhost.key 與 localhost.crt 與  wsgi.py 放在同一目錄下, 並將上述程式改為:

from flask import Flask
import ssl

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.load_cert_chain('localhost.crt', 'localhost.key')

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

app.run(host='127.0.0.1', port=443, debug=True, ssl_context=context)

利用 SciTE 開啟上述程式後, 以 Tool -> Go, 即可以瀏覽器開啟 https://localhost , 系統回傳 "Hello World".

Flask 登入流程

https://realpython.com/introduction-to-flask-part-2-creating-a-login-page/ 

flask_login.7z

操作要點:

  1. 是否會自行利用 openssl 建立 crt 與 key 檔案?
  2. 是否會將 wsgi.py 在 https 模式啟動?
  3. 是否了解 html form 表單建構與取輸入流程?
  4. 使用者登入後, 如何利用 session 儲存登入狀態?

課程專題 << Previous Next >> 計算機程式議題