摘要:簡述最近開始學習,就做了一個簡單的服務。這里以注冊為例,當表單填寫完后,點擊注冊按鈕,數據向后臺請求,請求路由為。插入成功就跳轉到登錄頁面,插入失敗就返回注冊失敗的內容。
簡述
最近開始學習python,就做了一個簡單的web服務。這個服務中用了Flask框架,這個能夠快速地搭建web服務器,詳細過程請看鏈接描述。創建的文件目錄如下
前臺頁面在前臺頁面中只需創建基本的表單內容,method使用get,登錄和注冊的action分別為/login、/registuser,代碼如下所示:
導入模塊
python使用Flask需要導入Flask模塊,如果沒有這個模塊就參見前面的鏈接去安裝。使用mysql需要導入pymysql模塊,這個具體是什么,請參見鏈接描述。總之,python需要用到特定的模塊的時候,需要去導入模塊,本例具體導入的內容如下所示:
#導入數據庫模塊 import pymysql #導入Flask框架,這個框架可以快捷地實現了一個WSGI應用 from flask import Flask #默認情況下,flask在程序文件夾中的templates子文件夾中尋找模塊 from flask import render_template #導入前臺請求的request模塊 from flask import request import traceback #傳遞根目錄 app = Flask(__name__)路由訪問靜態文件
在Flask創建服務器后,照著前面圖片的文件目錄,通過下面的路由就能通過服務器訪問靜態的html文件,代碼如下所示:
#默認路徑訪問登錄頁面 @app.route("/") def login(): return render_template("login.html") #默認路徑訪問注冊頁面 @app.route("/regist") def regist(): return render_template("regist.html")
此時在瀏覽器中通過localhost:5000(Flask默認端口為5000)就能訪問login.html文件,localhost:5000/regist就能訪問regist.html。
處理前臺請求及對數據庫進行操作跟所有的web服務思路一樣,獲取前臺的請求,根據不同的請求路由執行不同的函數內容。這里以注冊為例,當表單填寫完后,點擊注冊按鈕,數據向后臺請求,請求路由為/registuser。python根據相對應的路由執行函數,這里函數處理的內容是把前臺的用戶名和密碼插入到數據庫中(前提是已經在數據庫中創建好了user表)。插入成功就跳轉到登錄頁面,插入失敗就返回注冊失敗的內容。登錄的邏輯內容也類似,就不再細述,具體代碼如下:
#獲取注冊請求及處理 @app.route("/registuser") def getRigistRequest(): #把用戶名和密碼注冊到數據庫中 #連接數據庫,此前在數據庫中創建數據庫TESTDB db = pymysql.connect("localhost","root","123456","TESTDB" ) # 使用cursor()方法獲取操作游標 cursor = db.cursor() # SQL 插入語句 sql = "INSERT INTO user(user, password) VALUES ("+request.args.get("user")+", "+request.args.get("password")+")" try: # 執行sql語句 cursor.execute(sql) # 提交到數據庫執行 db.commit() #注冊成功之后跳轉到登錄頁面 return render_template("login.html") except: #拋出錯誤信息 traceback.print_exc() # 如果發生錯誤則回滾 db.rollback() return "注冊失敗" # 關閉數據庫連接 db.close()
#獲取登錄參數及處理 @app.route("/login") def getLoginRequest(): #查詢用戶名及密碼是否匹配及存在 #連接數據庫,此前在數據庫中創建數據庫TESTDB db = pymysql.connect("localhost","root","123456","TESTDB" ) # 使用cursor()方法獲取操作游標 cursor = db.cursor() # SQL 查詢語句 sql = "select * from user where user="+request.args.get("user")+" and password="+request.args.get("password")+"" try: # 執行sql語句 cursor.execute(sql) results = cursor.fetchall() print(len(results)) if len(results)==1: return "登錄成功" else: return "用戶名或密碼不正確" # 提交到數據庫執行 db.commit() except: # 如果發生錯誤則回滾 traceback.print_exc() db.rollback() # 關閉數據庫連接 db.close() #使用__name__ == "__main__"是 Python 的慣用法,確保直接執行此腳本時才 #啟動服務器,若其他程序調用該腳本可能父級程序會啟動不同的服務器 if __name__ == "__main__": app.run(debug=True)
此例僅僅是為完成python作為web服務器的流程,很多檢驗控制就沒細細去做。github地址為鏈接描述
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41263.html
摘要:根據中華人民共和國信息產業部第十二次部務會議審議通過的非經營性互聯網信息服務備案管理辦法精神,在中華人民共和國境內提供非經營性互聯網信息服務,應當辦理備案。未經備案,不得在中華人民共和國境內從事非經營性互聯網信息服務。 當我們開發了一個簡單的 Flask 程序,想把項目部署上線,我們可以選擇傳統的部署方式或者云部署方式把項目部署上線。在本文中,筆者將使用 阿里云輕量應用服務器 安裝 C...
摘要:利用開發個小型商城我們本期的教程是教大家如何利用開發一個小型的商城這里所說的小型商城只是功能上的簡樸。并于年月在許可證下發布。這套框架是以比利時的吉普賽爵士吉他手來命名的。是重量級選手中最有代表性的一位。 利用Django開發個小型商城 我們本期的教程是教大家如何利用Django開發一個小型的商城,這里所說的小型商城只是功能上的簡樸。 作者:黃志成(小黃) 作者博客:博客地址 前提 1...
閱讀 2513·2023-04-25 17:27
閱讀 1824·2019-08-30 15:54
閱讀 2369·2019-08-30 13:06
閱讀 2980·2019-08-30 11:04
閱讀 746·2019-08-29 15:30
閱讀 729·2019-08-29 15:16
閱讀 1733·2019-08-26 10:10
閱讀 3603·2019-08-23 17:02