云應用開發(fā)實戰(zhàn) 課件 單元1 我的云服務器_第1頁
云應用開發(fā)實戰(zhàn) 課件 單元1 我的云服務器_第2頁
云應用開發(fā)實戰(zhàn) 課件 單元1 我的云服務器_第3頁
云應用開發(fā)實戰(zhàn) 課件 單元1 我的云服務器_第4頁
云應用開發(fā)實戰(zhàn) 課件 單元1 我的云服務器_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

云應用開發(fā)實戰(zhàn)單元1-我的云服務器項目1.1創(chuàng)建虛擬機與數(shù)據(jù)庫項目1.2設計普通用戶程序項目1.3設計管理員程序項目1.4部署應用程序到EC2云端實例項目1.5綜合實訓—我的云服務器單元3—航班數(shù)據(jù)采集及可視化分析知識目標:掌握亞馬遜云科技賬號密鑰知識掌握亞馬遜云科技賬號的權限策略知識掌握AmazonEC2服務知識掌握Linux操作系統(tǒng)知識掌握Python在Linux中的開發(fā)知識掌握FlaskWeb程序的開發(fā)知識掌握SHA256加密知識掌握FlaskWeb操作數(shù)據(jù)庫的知識掌握正則表達式數(shù)據(jù)驗證知識掌握AmazonEC2虛擬機知識

能力目標:能創(chuàng)建亞馬遜云科技賬號并獲取密鑰能使用策略配置賬號權限能使用AmazonEC2服務創(chuàng)建Linux虛擬機能在Linux中搭建Python開發(fā)運行環(huán)境能使用Flask開發(fā)簡單的Web程序能使用正則表達式驗證數(shù)據(jù)的有效性能使用SHA256對密碼進行加密存儲能使用Flask進行數(shù)據(jù)庫的基本讀寫操作能使用分頁的方式顯示數(shù)據(jù)能使用AmazonRDS創(chuàng)建MySQL數(shù)據(jù)庫實例項目1.1創(chuàng)建虛擬機與數(shù)據(jù)庫創(chuàng)建AWSIAM用戶使用策略配置權限創(chuàng)建AmazonEC2Linux虛擬機創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.1創(chuàng)建AWS訪問賬號任務描述我們要使用AWS的云服務,就必須先有一個能操作云服務的賬號,這個任務目的就是引導大家創(chuàng)建一個AWS賬號。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.1創(chuàng)建AWS訪問賬號IAM服務AWSIdentityandAccessManagement(IAM)是一項AWS的托管服務,為使用AmazonWebServices(AWS)的客戶在AWS中管理用戶和用戶權限。借助IAM,可以集中管理用戶、訪問密鑰等安全憑證,以及用于管理用戶訪問AWS資源的權限。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.1創(chuàng)建AWS訪問賬號AWS賬號訪問IAM用戶訪問亞馬遜云科技的方式主要有三種,管理控制臺、CLI命令行界面和SDK編程訪問。在創(chuàng)建用戶時,可以按照需求進行選擇。(1)管理控制臺是一個基于Web的平臺,可以使用這個平臺操作亞馬遜云科技的各種云服務,通過用戶名、密碼可以登錄到亞馬遜云科技管理控制臺。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.1創(chuàng)建AWS訪問賬號AWS賬號訪問(2)CLI命令行界面讓用戶能夠在命令行Shell中使用命令與亞馬遜云科技服務進行交互。用戶也可以通過Python語言調(diào)用亞馬遜云科技的SDK程序操作云服務。這兩種方式操作云服務時,需要創(chuàng)建IAM用戶時生成的訪問密鑰(訪問密鑰ID(AccessKeyID)和秘密訪問密鑰(SecretAccessKey))。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.1創(chuàng)建AWS訪問賬號創(chuàng)建IAM用戶(1)使用根用戶登錄控制臺,選擇IAM服務。(2)添加用戶,選擇訪問權限類型為“編程訪問”以及“AWS管理控制臺訪問”,并設置控制臺密碼為自定義密碼,點擊“下一步:權限”。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.1創(chuàng)建AWS訪問賬號(3)不添加權限,點擊“下一步:標簽”。(4)不添加標簽,點擊“下一步:審核”。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.1創(chuàng)建AWS訪問賬號(5)審核創(chuàng)建的用戶信息,點擊“創(chuàng)建用戶”。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.1創(chuàng)建AWS訪問賬號保存AWS賬號信息創(chuàng)建用戶成功,賬號的AccessKeyID(訪問密鑰ID)與AccessSecretKey(秘密訪問密鑰)包含在一個.csv文件中,下載這個文件后可以獲取這些值。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.2使用策略配置權限訪問控制當IAM用戶在AWS中發(fā)出請求時,AWS云服務會檢查其是否具有權限。我們可以創(chuàng)建策略并將其附加到IAM身份或AWS資源上,以便管理AWS中的訪問。策略是AWS中的JSON文檔,在附加到身份或資源時,策略定義它們的權限。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.2使用策略配置權限基于身份的策略和基于資源的策略策略是AWS中的對象;在與標識或資源相關聯(lián)時,策略定義它們的權限。在創(chuàng)建權限策略以限制對資源的訪問時,可以選擇基于身份的策略或基于資源的策略?;谏矸莸牟呗钥梢愿郊拥絀AM用戶、組或角色。這些策略可讓您指定該身份可執(zhí)行哪些操作(其權限)?;谫Y源的策略附加到某個資源。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.2使用策略配置權限為用戶分配權限的方式有三種:將用戶添加到組、從現(xiàn)有用戶復制權限、直接附加現(xiàn)有策略。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.2使用策略配置權限直接附加現(xiàn)有策略(1)查看用戶現(xiàn)有權限。(2)添加訪問EC2實例的權限。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.2使用策略配置權限直接附加現(xiàn)有策略(3)再次查看用戶權限。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.2使用策略配置權限將用戶添加到組作為AWS最佳實踐,我們可以將策略附加到組,然后使用戶成為相應的組的成員。(1)創(chuàng)建組“EC2-Support”。(2)為EC2-Support組添加AmazonEC2FullAccess策略。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.2使用策略配置權限(3)將用戶加入EC2-Support組。(4)查看用戶現(xiàn)有權限。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.2使用策略配置權限從現(xiàn)有用戶復制權限選擇此選項可從現(xiàn)有用戶將所有策略復制到新用戶。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機EC2服務AmazonElasticComputeCloud(AmazonEC2)在AWS云中提供可擴展的計算能力。使用AmazonEC2可避免前期的硬件投入,因此能夠快速開發(fā)和部署應用程序。通過使用AmazonEC2,可以根據(jù)自身需要啟動任意數(shù)量、類型的虛擬服務器、配置安全和網(wǎng)絡以及管理存儲。同時,將AmazonEC2與彈性伸縮組(AutoScalingGroup)搭配使用,可以根據(jù)工作負載的大小動態(tài)調(diào)整實例的數(shù)量,使成本與性能間取得更佳的平衡。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機實例(Instance)AWS云中的虛擬服務器,每個實例的CPU處理能力、內(nèi)存容量、存儲大小和聯(lián)網(wǎng)能力的組合情況各不相同,可以根據(jù)需求搭配不同的實例類型。Amazon系統(tǒng)映像(AMI)Amazon系統(tǒng)映像(AMI)是一種包含軟件配置(例如,操作系統(tǒng)、應用程序服務器和應用程序)的模板,提供啟動實例所需的信息。在啟動實例時,必須指定AMI。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機(1)使用IAM賬號登錄進入控制臺(2)登錄進入后選擇EC2服務。(3)點擊“啟動實例”。1.發(fā)起實例啟動項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機(1)選擇Amazon系統(tǒng)映像(AMI)(2)選擇實例類型2.啟動實例項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機(3)配置實例詳細信息(4)添加存儲2.啟動實例項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機(5)添加標簽(6)配置安全組2.啟動實例在本項目中以開發(fā)/測試為主要目的,因此可將來源IP設置為任何位置,但在生產(chǎn)環(huán)境建議限制來源IP的地址。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機(7)核查實例啟動,點擊“啟動”。創(chuàng)建新密鑰對,并保存。2.啟動實例項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機查看實例項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機3.連接實例(1)如果本地計算機操作系統(tǒng)是Linux或macOSXa)本地安裝SSH客戶端。b)終端窗口中,使用ssh命令連接實例,命令如下:ssh-i/path/my-key-pair.pemmy-instance-user-name@my-instance-public-dns-name其中/path/my-key-pair.pem代表私有密鑰的本地路徑和文件名(.pem);my-instance-user-name代表實例的用戶名,對于AmazonLinux系統(tǒng),用戶名為ec2-user;my-instance-public-dns-name代表實例的公有DNS名稱。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機3.連接實例(2)如果本地計算機操作系統(tǒng)是Windowsa)本地安裝PuTTY。b)使用PuTTY提供的工具PuTTYgen,將私有密鑰my-key-pair.pem(.pem文件)轉換為my-key-pair.ppk(.ppk文件)。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.3創(chuàng)建AmazonEC2Linux虛擬機3.連接實例(2)如果本地計算機操作系統(tǒng)是Windowsc)使用PuTTY連接實例。啟動PuTTY,在Category窗格中,選擇Session,在HostName框中,輸入實例的公有DNS。在Category窗格中,展開Connection,再展開SSH,然后選擇Auth。完成以下操作:選擇Browse,選擇為密鑰對生成的my-key-pair.ppk(.ppk文件),然后選擇打開。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫AmazonRDSAmazonRelationalDatabaseService(AmazonRDS)是一項Web服務,讓用戶能夠在AWS云中更輕松地設置、操作和擴展關系數(shù)據(jù)庫。AmazonRDS提供六種常見的數(shù)據(jù)庫引擎選項,包括AmazonAurora、MySQL、MariaDB、Oracle、MicrosoftSQLServer和PostgreSQL。它可以為用戶提供經(jīng)濟實用的可調(diào)容量,并承擔常見的數(shù)據(jù)庫管理任務。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫1.發(fā)起RDS數(shù)據(jù)庫實例啟動(1)登錄根賬號,為IAM用戶添“AmazonRDSFullAccess”策略。使用已有的IAM賬號登錄進入控制臺。(2)打開AmazonRDS控制臺。(3)創(chuàng)建MySQL數(shù)據(jù)庫實例。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫2.啟動實例(1)選擇數(shù)據(jù)庫引擎為MySQL(2)選擇使用案例項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫2.啟動實例(3)指定數(shù)據(jù)庫詳細信息項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫2.啟動實例(4)配置高級設置項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫2.啟動實例(5)查看數(shù)據(jù)庫實例(6)查看數(shù)據(jù)庫實例的終端節(jié)點與端口項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫3.用戶管理數(shù)據(jù)庫設計(1)連接數(shù)據(jù)庫遠程連接RDS數(shù)據(jù)庫,使用命令:mysql-h<endpoint>-P3306-u<mymasteruser>-p其中<endpoint>為數(shù)據(jù)庫的終端節(jié)點。也可以使用可視化工具(如Navicat)連接RDS數(shù)據(jù)庫。項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫3.用戶管理數(shù)據(jù)庫設計(2)創(chuàng)建數(shù)據(jù)庫與數(shù)據(jù)表創(chuàng)建數(shù)據(jù)庫usermanage,SQL語句如下:CREATEDATABASEusermanageDEFAULTCHARACTERSETutf8mb4DEFAULTCOLLATEutf8mb4_general_ci;項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫3.用戶管理數(shù)據(jù)庫設計在usermanage數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表user,SQL語句如下:USEusermanage;CREATETABLEuser(idINTNOTNULLAUTO_INCREMENT,userVARCHAR(255),pwdVARCHAR(255),emailVARCHAR(255),PRIMARYKEY(id));項目1.1—創(chuàng)建虛擬機與數(shù)據(jù)庫1.1.4創(chuàng)建AmazonRDSMySQL數(shù)據(jù)庫3.用戶管理數(shù)據(jù)庫設計在表user中插入admin管理員用戶,密碼為1(用sha256加密),SQL語句如下:INSERTINTOuserVALUES(1,’admin’,’6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b’,’123@’);2項目1.2設計普通用戶程序安裝Python開發(fā)程序設計用戶登錄程序設計用戶注冊程序設計信息更新程序項目1.2設計普通用戶程序1.2.1安裝Python開發(fā)程序1.在EC2實例上安裝Python運行環(huán)境使用yum程序包管理器安裝,命令如下:yuminstallpython3-y2.使用pip安裝Flask與PyMySQL命令如下:pipinstallflaskpipinstallpymysql項目1.2設計普通用戶程序1.2.1安裝Python開發(fā)程序3.Flask框架Flask是一個基于Python開發(fā)并且依賴jinja2模板和WerkzeugWSGI服務的一個微型框架,“微”意味著Flask旨在保持核心的簡單,但同時又易于擴展。默認情況下,F(xiàn)lask不包含數(shù)據(jù)庫抽象層、表單驗證,或是其他任何已有多種庫可以勝任的功能。然而,F(xiàn)lask支持用擴展來給應用添加這些功能。Flask的這些特性,使得它在Web開發(fā)方面變得非常流行。項目1.2設計普通用戶程序1.2.2設計用戶登錄程序任務描述用戶登錄模塊主要用于實現(xiàn)用戶的登錄。用戶需要填寫正確的用戶名和密碼,點擊“登錄”按鈕,即可實現(xiàn)用戶登錄,跳轉至相應的用戶界面。如果輸入的用戶名或密碼不正確,則提示錯誤。同時,在此頁面上也可以點擊“注冊”按鈕,進行新用戶的注冊。項目1.2設計普通用戶程序1.2.2設計用戶登錄程序1.創(chuàng)建Flask項目在本地新建Flask項目app,其中包括app.py入口程序及兩個子文件夾static和templates,static文件夾存放css/js靜態(tài)資源,templates文件夾存放html模板文件。項目文件組織結構如下:/app/app.py/static/templates項目1.2設計普通用戶程序1.2.2設計用戶登錄程序2.jQuery與layui框架jQuery是一個快速的、簡潔的javaScript庫。layui是一款采用自身模塊規(guī)范編寫的前端UI框架,遵循原生HTML/CSS/JS的書寫與組織形式。我們可以借助jQuery與layui框架完成前端頁面的開發(fā)。layui的使用可參考官方文檔:/doc/。項目1.2設計普通用戶程序1.2.2設計用戶登錄程序3.session的使用在Flask中使用session需配置“SECRET_KEY”,一般設置為24位的字符。代碼如下:#從Flask模塊導入sessionfromflaskimportsession#設置密鑰app=Flask(__name__)app.secrect_key='A0Zr98j/3yXR~XHH!jmN]LWX/,?RT'或者隨機數(shù)(os.urandom(24))項目1.2設計普通用戶程序1.2.2設計用戶登錄程序4.jsonify的使用Flask提供了jsonify函數(shù)供用戶處理返回的序列化json數(shù)據(jù)。代碼如下:#從Flask模塊導入jsonifyfromflaskimportjsonify5.PyMySQL的使用操作MySQL的基本流程:建立數(shù)據(jù)庫連接、創(chuàng)建游標對象、執(zhí)行SQL語句、關閉游標、關閉數(shù)據(jù)庫連接。代碼如下:importpymysql項目1.2設計普通用戶程序1.2.2設計用戶登錄程序#連接數(shù)據(jù)庫,參數(shù)分別是主機名或IP、用戶名、密碼、數(shù)據(jù)庫名稱、端口號、字符集db=pymysql.connect(host='',user='root',password=‘xxx',db='usermanage',port=3306,charset='utf8mb4')#操作數(shù)據(jù)庫#使用cursor()方法創(chuàng)建一個游標對象curcur=db.cursor()#對數(shù)據(jù)庫執(zhí)行查詢操作try:cur.execute("select*fromdemoTable")result=cur.fetchall()print("demoColumn1","demoColumn2")#關閉數(shù)據(jù)庫連接db.close()項目1.2設計普通用戶程序1.2.2設計用戶登錄程序6.用戶登錄頁面index.html項目1.2設計普通用戶程序1.2.2設計用戶登錄程序7.設計SHA256加密函數(shù)用戶密碼經(jīng)過加密后存入數(shù)據(jù)庫中,編寫函數(shù)sha256_crypt實現(xiàn)加密功能,函數(shù)如下:defsha256_crypt(s):m=hashlib.sha256()b=s.encode(encoding='utf-8')m.update(b)sm=m.hexdigest()print(sm)returnsm項目1.2設計普通用戶程序1.2.2設計用戶登錄程序8.設計用戶登錄Web程序用來完成用戶登錄及注冊頁面的跳轉。用戶登錄時,要查詢數(shù)據(jù)庫,判斷表單提交的用戶名、密碼是否存在,若存在,還需要判斷該用戶是否為管理員用戶,主要結構如下:@app.route('/')defindex():"""用戶登錄頁面"""returnrender_template('index.html')

@app.route('/login/',methods=['POST'])deflogin():"""用戶登錄"""user=request.form.get('user')pwd=request.form.get('pwd')con=con_db()cu=con.cursor()cu.execute("selectidfromuserwhereuser='%s'andpwd='%s'"%(user,sha256_crypt(pwd)))ifcu.fetchall():session['user']=userifuser=='admin':returnjsonify({'code':2,'msg':'登錄成功'})returnjsonify({'code':0,'msg':'登錄成功'})returnjsonify({'code':1,'msg':'賬號密碼錯誤,登錄失敗'})項目1.2設計普通用戶程序1.2.3設計用戶注冊程序用戶注冊界面主要用于實現(xiàn)注冊新用戶功能。在該頁面中,需要填寫用戶名、郵箱、密碼和確認密碼,同時要求用戶名稱必須是數(shù)字和字母的組合,email要驗證有效性,密碼和確認密碼要一致。如果信息輸入不完整或填寫格式不符合要求,都將提示錯誤。項目1.2設計普通用戶程序1.2.3設計用戶注冊程序1.正則表達式的使用用戶在注冊時,通過正則表達式驗證用戶名與郵箱的有效性。代碼如下:user_rz=/^[0-9a-zA-Z]+$/#用戶名是數(shù)字和字母的組合,且不能為空mail_rz=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$/#有效郵箱項目1.2設計普通用戶程序1.2.3設計用戶注冊程序用戶注冊頁面userreg.html項目1.2設計普通用戶程序1.2.3設計用戶注冊程序設計用戶注冊程序@app.route('/user_reg/',methods=['POST','GET'])defuser_reg():"""用戶注冊頁面"""returnrender_template('userreg.html')

@app.route('/reg/',methods=['POST'])defreg():"""用戶注冊"""user=request.form.get('user’)pwd=request.form.get('pwd')email=request.form.get('email')con=con_db()cu=con.cursor()cu.execute("selectidfromuserwhereuser=%s",(user,))ifcu.fetchall():returnjsonify({'code':1,'msg':'用戶已存在’})cu.execute("insertintouser(user,pwd,email)values(%s,%s,%s)",(user,sha256_crypt(pwd),email))mit()returnjsonify({'code':0,'msg':'注冊成功'})項目1.2設計普通用戶程序1.2.4設計信息更新程序用戶信息查看頁面user.html用戶信息更新頁面userupdate.html項目1.2設計普通用戶程序1.2.4設計信息更新程序設計用戶信息查看程序@app.route('/user_index/')defuser_index():"""用戶首頁"""user=session.get('user')con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)#獲取用戶信息cu.execute("selectuser,emailfromuserwhereuser=%s",(user,))data=cu.fetchall()ifdata:data=data[0]#返回用戶頁面returnrender_template('user.html',**data)項目1.2設計普通用戶程序1.2.4設計信息更新程序設計用戶信息更新程序@app.route('/user_update/')defuser_update():"""用戶信息更新頁面"""returnrender_template('userupdate.html')@app.route('/put/',methods=['POST','GET'])defput():"""用戶信息更新"""con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)user=session.get('user')email=request.form.get('email’)pwd=request.form.get('pwd’)print(user,pwd)ifpwd:cu.execute('updateusersetpwd=%swhereuser=%s',(sha256_crypt(pwd),user))ifemail:cu.execute('updateusersetemail=%swhereuser=%s',(email,user))mit()returnjsonify({'code':0,'msg':'修改成功'})3項目1.3設計管理員程序設計查看與查找用戶程序設計刪除用戶程序設計重置用戶密碼程序項目1.3設計管理員程序1.3.1設計查看與查找用戶程序管理員頁面admin.html項目1.3設計管理員程序1.3.1設計查看與查找用戶程序管理員程序@app.route('/admin_index/')defadmin_index():"""管理首頁"""user=session.get('user')con=con_db()

cu=con.cursor(pymysql.cursors.DictCursor)returnrender_template('admin.html',**{})項目1.3設計管理員程序1.3.1設計查看與查找用戶程序管理員程序@app.route('/get_list/',methods=['GET’])defauser():"""用戶管理"""user=session.get('user’)sc=request.args.get('sc',None)page=int(request.args.get('page',1))limit=int(request.args.get('limit',10))print(sc)con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)sql='selectcount(*)ctfromuserwhere1=1'sql1='select*fromuserwhere1=1'ifsc:sql+="anduserlike'%{}%'".format(sc)sql1+="anduserlike'%{}%'".format(sc)sql1+='groupbyid'sql1+='limit{},{}'.format((1)*limit,limit)print(sql)print(sql1)cu.execute(sql)ct=cu.fetchall()[0].get('ct’)cu.execute(sql1)data=cu.fetchall()returnjsonify({'code':0,'msg':'獲取成功','data':data,'count':ct})項目1.3設計管理員程序1.3.2設計刪除用戶程序@app.route('/adel/',methods=['POST'])defadel():"""刪除用戶"""pid=request.form.get('pid')con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)cu.execute("deletefromuserwhereid=%s",(pid,))mit()returnjsonify({'code':0,'msg':'刪除成功'})項目1.3設計管理員程序1.3.3設計重置用戶密碼程序@app.route('/aput/',methods=['POST'])defaput():"""修改用戶"""pid=request.form.get('pid')pwd=request.form.get('pwd')con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)cu.execute("updateusersetpwd=%swhereid=%s",(sha256_crypt(pwd),pid))mit()returnjsonify({'code':0,'msg':'修改成功'})4項目1.4部署應用程序到EC2

云端實例將普通用戶程序部署到EC2云端實例將管理員程序部署到EC2云端實例項目1.4部署應用程序到EC2云端實例將程序部署到EC2云端實例在項目1.1中,我們已經(jīng)完成AmazonEC2的創(chuàng)建,在項目1.2中我們已經(jīng)完成普通用戶程序的設計,在項目1.3中我們已經(jīng)完成管理員程序的設計,接下來將所有開發(fā)好的程序上傳至EC2云端實例。項目1.4部署應用程序到EC2云端實例將程序部署到EC2云端實例根據(jù)本地操作系統(tǒng)的不同,選擇SCP命令或PSCP命令將Flask項目文件app傳輸?shù)紼C2云端實例。項目1.4部署應用程序到EC2云端實例將程序部署到EC2云端實例(1)如果本地計算機操作系統(tǒng)是Linux或macOSX使用SCP將文件傳輸?shù)皆品掌?。例如,如果私有密鑰文件的名稱為my-key-pair,要傳輸?shù)奈募镾ampleFile.txt,實例的用戶名為my-instance-user-name,實例的公有DNS名稱為my-instance-public-dns-name,在終端窗口中,輸入以下命令可將該文件復制到my-instance-user-name主目錄中:scp-i/path/my-key-pair.pem/path/SampleFile.txtmy-instance-user-name@my-instance-public-dns-name:~項目1.4部署應用程序到EC2云端實例將程序部署到EC2云端實例(2)如果本地計算機操作系統(tǒng)是Windows使用PuTTY安全復制客戶端將文件傳輸?shù)皆品掌?。PuTTY安全復制客戶端(PSCP)是一個命令行工具,可用于在Windows計算機和Linux實例之間傳輸文件。要使用PSCP,需要使用通過PuTTYgen轉換生成的私有密鑰(.ppk文件)以及Linux實例的公有DNS名稱。以下示例將Sample_file.txt文件從Windows計算機上的C:\驅動器傳輸?shù)紸mazonLinux實例上的my-instance-user-name主目錄。要傳輸文件,可使用以下命令:pscp-iC:\path\my-key-pair.ppkC:\path\Sample_file.txtmy-instance-user-name@my-instance-public-dns-name:/home/my-instance-user-name/Sample_file.txt5項目1.5綜合實訓—我的云服務器項目功能項目要點項目實施項目測試項目1.5綜合實訓

我的云服務器項目功能這個項目由三部分組成。1.AmazonEC2Linux虛擬機的創(chuàng)建把Web開發(fā)程序部署在EC2Linux實例上,創(chuàng)建我們的云服務器。2.AmazonRDSMySQL數(shù)據(jù)庫的創(chuàng)建3.普通用戶與管理員Web程序開發(fā)這個Web程序向普通用戶與管理員用戶提供不同的功能。普通用戶可以注冊并登錄,登錄后能查看到用戶信息,并且可修改注冊郵箱與密碼。數(shù)據(jù)庫中內(nèi)置管理員admin用戶,管理員登錄后可查看所有注冊用戶信息,可刪除用戶,也可以修改用戶密碼。項

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論