日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flask学习 黑马程序员-6节课入门Flask框架web开发视频(中途撤退,寻找py3教程)

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask学习 黑马程序员-6节课入门Flask框架web开发视频(中途撤退,寻找py3教程) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • postman工具
    • get和post
    • 如何給路由傳參 解析
    • @app.route('')這個叫視圖函數
    • Jinja2模板引擎
    • 動態傳參
    • 注釋、變量代碼塊以及控制代碼塊的使用
    • 注釋:ctrl+/
    • 變量代碼塊使用
    • 控制代碼塊的使用 if for等(for循環)
    • 過濾器的使用(比如小寫轉大寫,獲取第幾個字符之類的)
    • web表單及驗證
    • flash消息閃現,給模板傳遞消息,消息加密(做混淆用)
    • 表單樣式的顯示(使用flask_wtf模板創建表單)
    • 模板表單的驗證 csrf_token
    • Flask中使用SQL數據庫 SQLAlchemy(flask_sqlalchemy)(如果是使用mysql數據庫,安裝flask_mysqldb)
    • mysql數據模型的定義 常用SQLAlchemy字段類型/列選項/關系選項
    • 數據庫基本操作,增刪改 db.session

Python-flask視頻網站搭建

用flask-做一個資源網站(part1)-項目

黑馬程序員-6節課入門Flask框架web開發視頻


查看虛擬環境

Microsoft Windows [版本 10.0.18363.1256] (c) 2019 Microsoft Corporation。保留所有權利。C:\Users\Dontla>virtualenv --version virtualenv 20.3.1 from d:\20191031_tensorflow_yolov3\python\lib\site-packages\virtualenv\__init__.pyC:\Users\Dontla>



postman工具

https://www.postman.com/

get和post


如何給路由傳參 解析

@app.route(’’)這個叫視圖函數

Jinja2模板引擎

動態傳參

flask_template_demo.py

# -*- coding: utf-8 -*- """ @File : flask_template_demo.py @Time : 2021/1/26 16:41 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ from flask import Flask, render_templateapp = Flask(__name__)@app.route('/') def hello_world():url_str = 'www.baidu.com'return render_template('index.html', url_str=url_str)if __name__ == '__main__':app.run()

index.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>FLASK TEST</title> </head> <body>這是模板<br>這是首頁<br>{{url_str}} <br> </body> </html>

注釋、變量代碼塊以及控制代碼塊的使用

注釋:ctrl+/

<!---->

變量代碼塊使用

# -*- coding: utf-8 -*- """ @File : flask_template_demo.py @Time : 2021/1/26 16:41 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ from flask import Flask, render_templateapp = Flask(__name__)@app.route('/') def hello_world():url_str = 'www.baidu.com'my_list = [1, 2, 3, 4, 5]my_dict = {'name': '黑馬', 'url': 'www.tencent.com'}return render_template('index.html', url_str=url_str, my_list=my_list, my_dict=my_dict)if __name__ == '__main__':app.run() <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>FLASK TEST</title> </head> <body> 這是模板<br> 這是首頁<br> {{url_str}} <br> {{my_list}} <br> {{my_list.2}} <br> {{my_list[2]}} <br> {{my_dict}} <br> {{my_dict.name}} <br> {{my_dict['name']}} <br> </body> </html>

控制代碼塊的使用 if for等(for循環)

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>FLASK TEST</title> </head> <body> 這是模板<br> 這是首頁<br> {{url_str}} <br> {{my_list}} <br> {{my_list.2}} <br> {{my_list[2]}} <br> {{my_dict}} <br> {{my_dict.name}} <br> {{my_dict['name']}} <br><hr>{% for i in my_list %}{% if i >=3 %}{{i}} <br>{% endif %} {% endfor %} </body> </html> # -*- coding: utf-8 -*- """ @File : flask_template_demo.py @Time : 2021/1/26 16:41 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ from flask import Flask, render_templateapp = Flask(__name__)@app.route('/') def hello_world():url_str = 'www.baidu.com'my_list = [1, 2, 3, 4, 5]my_dict = {'name': '黑馬', 'url': 'www.tencent.com'}return render_template('index.html', url_str=url_str, my_list=my_list, my_dict=my_dict)if __name__ == '__main__':app.run()

過濾器的使用(比如小寫轉大寫,獲取第幾個字符之類的)


web表單及驗證

# -*- coding: utf-8 -*- """ @File : flask_WTF.py @Time : 2021/1/27 14:10 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ from flask import Flask, render_template, requestapp = Flask(__name__)@app.route('/', methods=["GET", "POST"]) def index():if request.method == 'POST':username = request.form.get('username')password = request.form.get('password')password2 = request.form.get('password2')if not all([username, password, password2]):return '參數不完整'else:return 'success'return render_template('index_WTF.html')if __name__ == '__main__':app.run(debug=True) <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>flask_WTF</title> </head> <body> <form method="post"><label>用戶名:</label><input type="text" name="username"><br><label>密碼:</label><input type="password" name="password"><br><label>確認密碼:</label><input type="password" name="password2"><br><input type="submit" value="提交"><br> </form> </body> </html>


flash消息閃現,給模板傳遞消息,消息加密(做混淆用)

flask_WTF.py

# -*- coding: utf-8 -*- """ @File : flask_WTF.py @Time : 2021/1/27 14:10 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ from flask import Flask, render_template, request, flashapp = Flask(__name__) app.secret_key = '12345678' # 隨便填@app.route('/', methods=["GET", "POST"]) def index():if request.method == 'POST':username = request.form.get('username')password = request.form.get('password')password2 = request.form.get('password2')if not all([username, password, password2]):# return '參數不完整'flash('參數不完整')else:# return 'success'return 'sucess'return render_template('index_WTF.html')if __name__ == '__main__':app.run(debug=True)

index_WTF.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>flask_WTF</title> </head> <body> <form method="post"><label>用戶名:</label><input type="text" name="username"><br><label>密碼:</label><input type="password" name="password"><br><label>確認密碼:</label><input type="password" name="password2"><br><input type="submit" value="提交"><br>{% for message in get_flashed_messages() %}{{ message }}{% endfor %} </form> </body> </html>



表單樣式的顯示(使用flask_wtf模板創建表單)

https://www.bilibili.com/video/BV17W41177oE?p=16

# -*- coding: utf-8 -*- """ @File : flask_WTF.py @Time : 2021/1/27 14:10 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ from flask import Flask, render_template, request, flash from flask_wtf import FlaskForm from wtforms import SubmitField, PasswordField, StringFieldapp = Flask(__name__) app.secret_key = '12345678' # 隨便填# 自定義表單類 class LoginForm(FlaskForm):username = StringField('用戶名:')password = PasswordField('密碼:')password2 = PasswordField('確認密碼:')submit = SubmitField('提交')@app.route('/form', methods=['GET', 'POST']) def login():login_form = LoginForm()# 1. 判斷請求方式if request.method == 'POST':# 2. 獲取請求的參數username = request.form.get('username')password = request.form.get('password')password2 = request.form.get('password2')# 3. 驗證參數. WTF可以一句話就實現所有的校驗# 我們沒有CSRF tokenif login_form.validate_on_submit():print(username, password)return 'success'else:flash('參數有誤')return render_template('index_WTF.html', form=login_form)@app.route('/', methods=["GET", "POST"]) def index():if request.method == 'POST':username = request.form.get('username')password = request.form.get('password')password2 = request.form.get('password2')if not all([username, password, password2]):# return '參數不完整'flash('參數不完整')else:# return 'success'return 'sucess'return render_template('index_WTF.html')if __name__ == '__main__':app.run(debug=True)

index_WTF.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>flask_WTF</title> </head> <body> <form method="post"><label>用戶名:</label><input type="text" name="username"><br><label>密碼:</label><input type="password" name="password"><br><label>確認密碼:</label><input type="password" name="password2"><br><input type="submit" value="提交"><br>{% for message in get_flashed_messages() %}{{ message }}{% endfor %} </form><hr><form method="post">{{ form.csrf_token() }}{{ form.username.label }}{{ form.username }} <br>{{ form.password.label }}{{ form.password }} <br>{{ form.password2.label }}{{ form.password2 }} <br>{{ form.submit}} <br> </form> </body> </html>

模板表單的驗證 csrf_token

常用驗證函數

怎么使用?



老師說validators是復數,所以可以傳個列表,這推導??

但這寫個tuple是啥意思?反正就是可迭代對象就行?(不能用tuple,會報錯,只能用列表)

# -*- coding: utf-8 -*- """ @File : flask_WTF.py @Time : 2021/1/27 14:10 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ from flask import Flask, render_template, request, flash from flask_wtf import FlaskForm from wtforms import SubmitField, PasswordField, StringField from wtforms.validators import DataRequired, EqualToapp = Flask(__name__) app.secret_key = '12345678' # 隨便填# 自定義表單類 class LoginForm(FlaskForm):username = StringField('用戶名:', validators=[DataRequired()])password = PasswordField('密碼:', validators=[DataRequired()])password2 = PasswordField('確認密碼:', validators=[DataRequired(), EqualTo('password', '提示:密碼填入不一致')])submit = SubmitField('提交')@app.route('/form', methods=['GET', 'POST']) def login():login_form = LoginForm()# 1. 判斷請求方式if request.method == 'POST':# 2. 獲取請求的參數username = request.form.get('username')password = request.form.get('password')password2 = request.form.get('password2')# 3. 驗證參數. WTF可以一句話就實現所有的校驗# 我們沒有CSRF tokenif login_form.validate_on_submit():print(username, password)return 'success'else:flash('參數有誤')return render_template('index_WTF.html', form=login_form)@app.route('/', methods=["GET", "POST"]) def index():if request.method == 'POST':username = request.form.get('username')password = request.form.get('password')password2 = request.form.get('password2')if not all([username, password, password2]):# return '參數不完整'flash('參數不完整')else:# return 'success'return 'success'return render_template('index_WTF.html')if __name__ == '__main__':app.run(debug=True) <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>flask_WTF</title> </head> <body> <form method="post"><label>用戶名:</label><input type="text" name="username"><br><label>密碼:</label><input type="password" name="password"><br><label>確認密碼:</label><input type="password" name="password2"><br><input type="submit" value="提交"><br>{% for message in get_flashed_messages() %}{{ message }}{% endfor %} </form><hr><form method="post">{{ form.csrf_token() }}{{ form.username.label }}{{ form.username }} <br>{{ form.password.label }}{{ form.password }} <br>{{ form.password2.label }}{{ form.password2 }} <br>{{ form.submit}} <br> </form> </body> </html>


Flask中使用SQL數據庫 SQLAlchemy(flask_sqlalchemy)(如果是使用mysql數據庫,安裝flask_mysqldb)


# -*- coding: utf-8 -*- """ @File : flask_sqlalchemy_demo.py @Time : 2021/2/5 14:49 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ from flask import Flask from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__) # 配置數據庫地址 app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1/flask_sql_demo' # 跟蹤數據庫修改 -- 不建議開啟(消耗性能,同時未來版本中會移除) app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app)@app.route('/') def hello_world():return 'Hello World'if __name__ == '__main__':app.run(debug=False)

在電腦上還要創建sql數據庫??

裝好了,按照這個安裝就行

數據庫mysql是什么?win10如何安裝使用mysql?

然后控制臺執行命令,登入數據庫:

C:\Users\Dontla>mysql -u root -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 8.0.23 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

創建數據庫:

mysql> create database flask_demo charset=utf8; Query OK, 1 row affected, 1 warning (0.02 sec)mysql>

使用數據庫:

mysql> use flask_sql_demo; Database changed mysql>

顯示數據庫表單:

mysql> show tables; Empty set (0.01 sec)mysql>

mysql數據模型的定義 常用SQLAlchemy字段類型/列選項/關系選項


表格式:

兩個表做兩個class

代碼看下一節

數據庫基本操作,增刪改 db.session


我勒個去,應該找個python3的教程的,這個python2很多庫用法不支持,替換也替換不了。。。。https://www.bilibili.com/video/BV17W41177oE?p=20&spm_id_from=pageDriver到此為止,再見!

總結

以上是生活随笔為你收集整理的Flask学习 黑马程序员-6节课入门Flask框架web开发视频(中途撤退,寻找py3教程)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。