程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python學習筆記_Day09

編輯:Python

列表排序

  • 列表排序的sort方法有一個名為key的參數
  • 參數key要求傳入一個函數,該函數將列表中的每一項進行處理,處理的結果作為排序依據
>>> alist
[('172.40.58.150', 10), ('172.40.58.124', 6), ('172.40.58.101', 10), ('127.0.0.1', 121), ('192.168.4.254', 103), ('192.168.2.254', 110), ('201.1.1.254', 173), ('201.1.2.254', 119), ('172.40.0.54', 391), ('172.40.50.116', 244)]
>>> def last(item):
... return item[-1]
>>> alist.sort(key=last)
>>> alist
[('172.40.58.124', 6), ('172.40.58.150', 10), ('172.40.58.101', 10), ('192.168.4.254', 103), ('192.168.2.254', 110), ('201.1.2.254', 119), ('127.0.0.1', 121), ('201.1.1.254', 173), ('172.40.50.116', 244), ('172.40.0.54', 391)]

python軟件包管理

python的官方模塊文件站點:https://pypi.org/

安裝模塊:

pip install 模塊名

因為安裝的時候使用的是國外站點,有可能速度慢。可以使用國內鏡像站點

# mkdir -p ~/.pip
# vim ~/.pip/pip.conf
[global]
index-url = http://pypi.douban.com/simple/
[install]
trusted-host=pypi.douban.com

安裝wget

(nsd1903) [[email protected] day04]# pip install wget

本地安裝

# ls /linux-soft/05
zzg_pypkgs.tar.gz
# tar xzf /linux-soft/05/zzg_pypkgs.tar.gz -C ~
# pip install pymysql_pkgs/*

啟動虛擬機,安裝mariadb-server並啟動。

創建名為nsd1903的數據庫,並授權物理主機可以訪問。

創建數據庫

為一個小公司創建數據庫,用於記錄員工的基本信息以及發工資的情況。

姓名、性別、職位、部門、聯系方式、出生日期、工資日、基本工資、獎金、實發工資

關系型數據庫,應該盡量減少數據冗余。為了消除冗余,可以把數據放到不同的表中。

員工表:姓名、性別、職位、部門、聯系方式、出生日期

工資表:姓名、工資日、基本工資、獎金、實發工資

關系型數據的范式

  • 所謂第一范式(1NF)是指在關系模型中,對域添加的一個規范要求,所有的域都應該是原子性的,即數據庫表的每一列都是不可分割的原子數據項
  • 聯系方式可以拆為:email / 電話號碼 / 家庭住址
  • 第二范式(2NF)是在第一范式(1NF)的基礎上建立起來的,即滿足第二范(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數據庫表中的每個實例或記錄必須可以被唯一地區分。簡單來說,就是需要有個主鍵。
  • 員工表需要添加員工ID作為主鍵
  • 工資表用哪個作為主鍵都不合適,可以單獨添加一個id作為主鍵
  • 第三范式就是屬性不依賴於其它非主屬性,也就是在滿足2NF的基礎上,任何非主屬性不得傳遞依賴於主屬性。非主屬性不能依賴於其他非主屬性。
  • 工資表中,實發工資依賴於基本工資和獎金,它不應該出現在表中,需要用的時候,通過程序臨時計算。

最終的表:

員工表:員工ID、姓名、性別、職位、部門ID、email、phone、出生日期

部門表:部門ID、部門名稱

工資表:id、員工ID、工資日、基本工資、獎金

pymysql模塊的使用

  1. 創建到數據庫的連接
  2. 創建用於操作數據庫(表)的游標,相當於操作文件時打開的文件對象
  3. 通過游標執行sql語句
  4. 如果涉及對數據庫的修改,需要執行commit
  5. 關閉游標、關閉連接
# 創建數據庫
MariaDB [(none)]> CREATE DATABASE nsd1903 DEFAULT CHARSET utf8;

sqlalchemy

(nsd1903) [[email protected] day04]# pip install sqlalchemy_pkgs/SQLAlchemy-1.2.14.tar.gz

ORM:對象關系映射

  • Object:對象,對應python的class
  • Relationship:關系,對應關系型數據庫
  • Mapping:映射
  • 把sqlalchemy中的類與表關聯
  • 把類中的變量與表的字段關聯
  • 把類的實例與表的記錄關聯
  • 表中的每個字段與sqlalchemy的Column類關聯
  • 字段的類型與sqlalchemy相關的類關聯
MariaDB [nsd1903]> CREATE DATABASE tedu1903 DEFAULT CHARSET utf8;

對數據庫執行增刪改查操作時,需要創建會話。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved