經過了第一章的內容,已經可以做出一些簡單的頁面,首先用這種方式做一個登錄頁面,首先要創建一個login的路由方法:
@app.route("/login",methods=["GET"])def login(): html="<form method='post'>" / "<table>" / "<tr><td>請輸入用戶名</td><td><input type='text' name='username'/></td></tr>" / "<tr><td>請輸入密碼</td><td><input type='password' name='password'/></td></tr>" / "<tr><td><input type='submit' value='登錄'/></td></tr>" / "</table>" / "</post>" return html
這個頁面返回后是一個簡單的登錄頁,顯示結果如下:
然后是一個登錄的post返回頁:
@app.route("/login",methods=["POST"])def loginPost(): username=request.form.get("username","") password=request.form.get("password","") if username=="test" and password=="123" : return "登錄成功" else: return "登錄失敗"
輸入test和123后,顯示登錄成功
功能上當然是實現了,但是從其他方面來說,卻很難說它是一個能夠實際應用的程序,即使不考慮js腳本和css樣式表,就從簡簡單單的維護來說,就是一場噩夢,比如說像增加一個驗證碼框,我想不會有人認為這是一件愉快的工作。
所以,首先來說,我們要把頁面html部分獨立出來,這點,flask提供了jinja2模板引擎來實現。
jinja2模板引擎同樣符合flask最基礎的約定,即眾多配置中都有一個基礎的默認值,相對jinja2來說,有一個最重要的默認值,即模板文件放在templates文件夾,這個文件夾雖然可以自定義,但目前來說,使用默認值已經足夠了。
好,首先在PyCharm的項目根目錄創建templates文件夾,然后在文件夾內創建login.html文件,當然目錄結構如下:
在login.html中輸入代碼如下:
<!DOCTYPE html><html> <head> <title>歡迎您登陸--牛博客</title> </head> <body> <form method='post'> <table> <tr><td>請輸入用戶名</td><td><input type='text' name='username'/></td></tr> <tr><td>請輸入密碼</td><td><input type='password' name='password'/></td></tr> <tr><td><input type='submit' value='登錄'/></td></tr> </table> </form> </body></html>
代碼很簡單,也名沒有進行樣式方面的美化,其實目前就我來說,僅僅是因為有了智能感知,就有足夠的理由使用模板了,然后,對default.py的login方法進行修改代碼為:
新聞熱點
疑難解答