各種開源議題

Miscellaneous Open Source Topics

議程簡介

想知道 PyCon TW 走過十幾個年頭的酸甜苦辣嗎?想聽聽厲害的講者分享 Python 相關的開發經驗嗎?我們即將在 COSCUP 與大家交流研討會舉辦秘辛,並邀請優秀的講者來與我們分享精彩演講!期待在 COSCUP 2023 與您相見!

Do you want to know the story of PyCon TW over the past decade? Are you curious about the development experience of Python experts? We’re going to invite speakers to give talks and share the secrets of the conference with everyone at COSCUP. We are looking forward to meeting you at COSCUP 2023!

篩選條件

議題

使用Python ORM實現資料庫存取和版本控制的實作

TR 511 [[ new Date( '2023-07-29 02:40:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 02:40:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 03:10:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

在這次分享中,我將介紹如何使用Python的ORM進行資料庫存取和DB Schema版本控制的實作。ORM是一種讓我們可以以物件導向的方式操作資料庫的技術,省去直接撰寫SQL查詢語句的麻煩。

首先,我將重點介紹Python中的SQLAlchemy ORM框架,它提供了一套豐富的工具,使我們能夠輕鬆地建立資料模型、執行查詢和進行資料庫遷移等操作。

接下來,我將深入探討資料庫存取的不同情境。我將解釋如何建立資料模型類別,並將其映射到資料庫表格。我們將討論查詢、新增、更新和刪除資料的方法,以及處理複雜的查詢操作,如聯結和聚合。

除了資料庫存取,我還會討論DB Schema版本控制的實作。我將以III DevOps開源專案的實際案例來示範如何使用ORM和Alembic來進行資料庫模型的版本升級。這將確保用戶端的資料庫能自動且安全地完成升級程序,以確保與應用程式版本的一致性。

最後,我們將進行實作示範,展示如何使用Python ORM進行資料庫存取和版本控制。這些示範將讓您體驗到ORM的優勢,並幫助您思考如何在自己的專案中應用這項技術。

這個分享將提供實用的知識和技巧,適合資料庫開發人員、Python開發人員,以及對資料庫存取和版本控制有興趣的人參加。讓我們一起探索使用Python ORM進行資料庫存取和版本控制的實作!

講者

李毅山

李毅山

我是財團法人資訊工業策進會(資策會)的後端工程師,專精於使用Python進行開發工作。目前,我主要負責 III DevOps 開源專案的後端團隊工作。

我擁有豐富的使用Docker、Kubernetes等微服務開發架構的經驗,並熟練應用CI/CD工具。作為後端團隊的負責人,除了參與產品開發,我也在CI/CD工具整合方面提供了寶貴的建議,並將其實現為 III DevOps 平台產品的API自動回歸測試功能。例如黑箱掃描工具WebInspect和OWASP,白箱掃描工具SonarQube和Checkmarx,以及整合測試工具Postman和映像掃描工具Sbom等。

此外,我致力於研究如何有效運用後端技術來控制Kubernetes,以實現DevOps平台中多個團隊共享單一Cluster,並保持彼此獨立的開發測試環境。同時,我也專注於研究如何在保證效率的前提下,讓各個專案的Pipeline能夠與後端程式的升級相配合,並自動修改相應的Pipeline YAML檔以實現自動升級。

我對軟體開發技術的創新和團隊合作充滿熱情,並樂於分享Python在後端開發中的實踐方法和解決方案。作為後端工程師,我致力於推動團隊的成長,並提供高品質的技術解決方案。

Miscellaneous Open Source Topics 各種開源議題 BHMDWZ general (30mins)

意想不到的Jupyter用法-跟AI協作做出萬能的DevOps控制台

TR 511 [[ new Date( '2023-07-29 03:20:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 03:20:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 03:50:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

Jupyter是一個集文件、編程及執行環境於一身的作業環境,可說是數據科學家們的最愛,在機器學習的領域中同樣活躍,但有沒有想過即使在風馬牛不相及的DevOps範疇中,Jupyter也能大放異彩呢?

圖像介面簡單易記,但難以處理複雜的自動化任務;指令介面則能勝任複雜任務卻難以使用。Jupyter正好集二者之所長,提供圖像介面來操作複雜的指令,自由地擴充,加入圖文說明,還能透過連結獲得更多資訊或功能。

你甚至可至不用費神學習相關的編程智識,因為一切都可以找ChatGPT幫你代勞。雖然現階段AI難以編寫過於複雜的代碼,但用Jupyter編寫的DevOps的操作台並不會有複雜的互動,正好是能讓AI大顯身手的場合。

講者將會分享如何在AI的輔助下把Jupyter客制成DevOps用的操作面板。

講者

Ben Lau

Ben Lau

Ben Lau是一位來自香港的開源軟件開發者,曾經擔任香港的Linux User Group的副會長,是2016及2017年的Qt Champion,他也是「封鎖內容農場」這個Chrome套件的作者,他還制作過一款叫做「Dualless」的套件,最高的用戶數達到200萬之多。

Miscellaneous Open Source Topics 各種開源議題 DDZYDA general (30mins)

寶可夢苦難日:結局不是重點,重點是我爬不上大師啊

TR 511 [[ new Date( '2023-07-30 03:20:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-30 03:20:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-30 03:50:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注
  • 個人/專案介紹
  • 如何從日常生活中找出 side project
  • 有效整理資訊,找尋適合自己使用的介面實作
  • 做事不欲人後! 如何把 OpenAI 的內容也一起整進去呢?
  • 佈署 side project 的一些建議&範例
  • Python 開發小工具推薦
  • 結論

講者

Nijia Lin

Nijia Lin

Technology Evangelist at LINE Taiwan. Passion for sharing and creating new ideas in the engineering ecosystem. Also, contribute to open-source in my free time.

More information please see my blog: https://nijialin.com/about/

Miscellaneous Open Source Topics 各種開源議題 VAHKVH general (30mins)

Does your Django application have proper security headers?

AU [[ new Date( '2023-07-30 05:40:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-30 05:40:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-30 06:10:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] en
加入行事曆 加入關注 加入關注 已關注

Django is one of the most popular python frameworks used to create web applications. While a lot of people focus on the Django ORM and the Django templating engine, the Django framework also comes with a neat set of middlewares and plugins that can be used to add security headers to your applications. Security headers are a very important layer of defense for your website to keep your users protected. In this talk, we are going to discuss what the different security headers do, and how can we add them to django.

講者

Saptak S

Saptak S

Saptak S. is a human rights centered web developer, focusing on usability, security, privacy and accessibility topics in web development. He works as a web development contractor. He is a contributor and maintainer of various different open source projects like The A11Y Project, OnionShare and Wagtail. He is part of the Open Source Design core team. He is also the author of the Security and Accessibility chapter of Web Almanac 2022. One can find him blogging at saptaks.blog.

Main Track 主議程軌 EQGB7L general (30mins)