Python中的Flask基礎入門(二)
阿新 • • 發佈:2018-11-02
第一部分是過濾器
這是我們的py檔案
#1.匯入Flask擴充套件. from flask import Flask#匯入我們的Flask框架 from flask import render_template#我們的返回值有兩種,如果要返回html,就需要匯入這個模組 #2.建立Flask應用程式例項,需要傳入_name_,作用是為了確定資源所在的路徑 app = Flask(__name__) #3.確定路由及其檢視函式,@app為裝飾器 #Flask中定義路由是通過裝飾器實現的,裝飾器下面緊跟著我們定義的函式 #路由預設值只支援GET,如果想要其他的方法,那麼就新增method方法 @app.route('/',methods=['GET','POST']) #這種是返回的字串內容 def hello_world(): return 'Hello World!' #這是返回HTML內容 @app.route('/login.html') def login(): url_str='www.baidu.com' url_list=[1,2,3,4,5] #通常,我們模板中(模板就是我們的html檔案)使用的變數名和要傳遞的資料名是一樣的 return render_template('login.html',url_str=url_str,url_list=url_list) #下面來實現使用一個檢視函式u,來實現不同的訂單資訊,order_id預設的是字串,如果想要特性的格式,那麼 #可以在前面加上型別 @app.route('/order/<int:order_id>') def get_order_id(order_id): return 'order_id is %s' %order_id #4.啟動程式 if __name__ == '__main__': #執行app.run就會將我們的Flask程式執行在一個簡單的伺服器上(伺服器有Flask提供,用於測試) app.run()
我們的html檔案
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {#過濾器,字串大小寫轉換#} {{ url_str | upper}}<br> {#過濾器,字串大小寫轉換#} {{ url_str | lower}}<br> {#過濾器,字串中每個單詞的首字母大寫#} {{ url_str|title}} {#過濾器,字串翻轉#} {{ url_str | reverse}}<br> {#過濾器的鏈式呼叫#} {{ url_str|upper|lower}}<br> <hr> {#下面是列表的操作。第一個元素,最後一個元素,長度,求和,排序#} <p>{{ url_list|first}}</p> <p>{{ url_list|last}}</p> <p>{{ url_list|length}}</p> <p>{{ url_list|sum}}</p> <p>{{ url_list|sort}}</p> </body> </html>
第二部分是我們的表單驗證
from flask import Flask,request,render_template,flash ''' 在程式中如果想要給模板傳遞訊息,模板就是我們的網頁,就要用到flash(flash是需要加密的)來傳遞,那麼網頁如何接受我們的 訊息呢,,需要遍歷 ''' app = Flask(__name__) app.secret_key='sun' @app.route('/',methods=['GET','POST']) def login_html(): #request是我們的請求物件 #1.request來獲取我們的請求方法 if request.method == 'POST': #2.request獲取表單中的值 username = request.form.get('username') password = request.form.get('password') acknowledge = request.form.get('acknowledge') if not all([username,password,acknowledge]): # print('請填完整內容') flash('請填完整內容')#如果要執行這條語句,那麼就會加密,把我們的上面加密的部分字串加入到這裡面 elif password!=acknowledge: # print("兩次密碼不一致") flash('兩次密碼不一致') else: return 'success' return render_template('login.html') if __name__ == '__main__': app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登入介面</title>
</head>
<body>
<form method="post">
<lable>使用者名稱:</lable><input type="text" name="username"><br>
<lable>密碼:</lable><input type="text" name="password"><br>
<lable>確認密碼:</lable><input type="text" name="acknowledge"><br>
<input type="submit" value="提交"><br>
{#使用遍歷獲取閃現的訊息#}
{% for message in get_flashed_messages() %}
{{message}}
{% endfor %}
</form>
</body>
</html>
</html>