Python實現Web開發框架【Flask】入門
首先創建一個python項目,就不同的python項目就好了,然后要安裝好 Flask pip insatll Flask
入門案例
之間在項目中創建一個py文件寫上代碼 在 PyCharm 中右鍵運行就好了
from flask import Flask
# 創建Flask應用
app = Flask(__name__)
# 創建路由和函數 默認只能通過 GET 方式拿到數據
@app.route("/", methods=["GET", "POST"])
def hello():
return "hello world flask"
# @app.route("/students/<sid>")
# 如果不寫類型為 int 那么就是啥都可以傳,如果寫了int那么只能 /students/int類型 否則訪問不到
@app.route("/students/<int:sid>")
def students(sid):
return f"您要查詢的編號為:{sid}"
if __name__ == '__main__':
# debug 代表修改后不要重啟,這是平時開發的時候哦玩的
app.run(debug=True)
執行效果:
Jinja2模板引擎使用
在項目中創建 templates 這個文件夾
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello world</title>
</head>
<body>
<h1>你好:Flask</h1>
<h3>姓名:{{ name }}</h3>
<h3>年齡:{{ age }}</h3>
<table>
<thead>
<tr>
<th>編號</th>
<th>姓名</th>
<th>年齡</th>
</tr>
</thead>
<tbody>
{% for p in persons %}
<tr>
<td>{{ p.id }}</td>
<td>{{ p.name }}</td>
<td>{{ p.age }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
python代碼
使用模板的話 一定要導入 render_template
# 要使用 模板 就一定要導入 render_template
from flask import Flask, render_template
# 創建Flask應用
app = Flask(__name__)
# 創建路由和函數 默認只能通過 GET 方式拿到數據
@app.route("/", methods=["GET", "POST"])
def hello():
# 調整到 模板頁面
name = "張三"
age = 188
persons = [
{"id": 1, "name": "張三", "age": 3},
{"id": 2, "name": "李四", "age": 4},
{"id": 3, "name": "王五", "age": 5},
]
return render_template("index.html", name=name, age=age, persons=persons)
if __name__ == '__main__':
# debug 代表修改后不要重啟,這是平時開發的時候哦玩的
app.run(debug=True)
Flask 操作數據庫
這里要 pip insatll pymysql
和 pip install flask-sqllchemy
,這屬于擴展 Flask 這個框架。安裝 flask-sqllchemy可能報錯,如果報錯可以參考這篇博客
python 代碼
# 要使用 模板 就一定要導入 render_template
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
import pymysql
# 將 mymysql 作為 MySQLdb 使用
pymysql.install_as_MySQLdb()
# 創建Flask應用
app = Flask(__name__)
# 連接數據庫
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:[email protected]:3306/my-python"
# 這是設置為 false 提高性能
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 連接MYSQL數據庫
db = SQLAlchemy(app)
# 創建模型 (到時候會自動更具這個模板創建表)
class Persons(db.Model):
# 這是對應的表名
__tablename__="persons"
# 第一個參數是 類型 第二個參數是 約束
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
age = db.Column(db.Integer)
# 創建路由和函數 默認只能通過 GET 方式拿到數據
@app.route("/", methods=["GET", "POST"])
def hello():
# 調整到 模板頁面
name = "張三"
age = 188
# 查詢數據庫表中的數據
persons = Persons.query.all()
return render_template("index.html", name=name, age=age, persons=persons)
if __name__ == '__main__':
# 創建所有的模型(表)
db.create_all()
# debug 代表修改后不要重啟,這是平時開發的時候哦玩的
app.run(debug=True)
運行后會自動幫我們在數據庫中更具 定義的 模型 創建好表 (如果已經創建就不會再重復創建了)
順便插幾條數據測試一下:
這里只是簡單入門,更多請參考:Flask 中文文檔
智能推薦
第五章-Python3中Web開發框架flask實現用戶主頁和頭像
點擊閱讀原文PC端訪問效果更佳。 代碼地址:https://github.com/ddxygq/PyCode/tree/master/web/flask/mega_tutorial/chapter6-homepage/app 本文翻譯自 The Flask Mega-Tutorial Part VI: Profile Page and Avatars 這是Flask Mega-Tutor...
第六章-Python3中Web開發框架flask實現錯誤處理
點擊閱讀原文PC端訪問效果更佳。 代碼地址:https://github.com/ddxygq/PyCode/tree/master/web/flask/mega_tutorial/chapter7-errorhandle/app 本文翻譯自The Flask Mega-Tutorial Part VII: Error Handling 這是Flask Mega-Tutorial系列的第七部分,我...
Flask Web開發入門(七)之SQLAlchemy
上一章中,我們簡單介紹了使用 SQLAlchemy ORM框架來訪問MySQL數據庫,本章我們將繼續就此話題進行展開。 SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. S...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...