首頁>技術>

前言

今天來介紹下如何將 MongoDB 與 Flask 框架結合在一起使用。忘記 MongoDB 的同學可以回顧下之前寫的文章。

成果展示

先來個原始碼截圖:

專案啟動後,直接訪問我們的 url ,讓它去查庫,age 我們傳入 24 好了,資料庫中 age = 24 的有 3 條資訊。

127.0.0.1:8080/user/24

注意觀察列出來的幾條,資訊是否和後面資料庫中資料一致!

環境準備

開始之前,先來安裝一下我們需要的第三庫。

pip install Flask-PyMongo

Flask提供了第三方外掛,將 pymongo 這個庫與 Flask 整合在了一起,所以需要先安裝此外掛庫。

場景設定

場景設定如下:

現在 MongoDB 資料庫裡有 4 條資料,分別:

分別是 4 個不同人的資訊,接下來,使用 Flask 來結合 MongoDB 一起使用,通過頁面 url 傳入查詢欄位,在 url 上傳入 24,讓 Flask 去 MongoDB 中查詢 age=24 的使用者資訊,並顯示在頁面上。

程式碼講解

1. HTML 涉及的程式碼:

遍歷每條使用者資訊,將符合的使用者資訊以無序的形式展現在網頁上。

2. flask 涉及的程式碼:

首先,觀察下 flask結合 pymongo 的外掛開啟資料庫例項,和原來直接使用 pymongo 的區別。

開啟資料庫例項對比:

Flask-PyMongo:

from flask import Flask, render_templatefrom flask_pymongo import PyMongoapp = Flask(__name__)app.config['DEBUG'] = True # 開啟 debugmongo = PyMongo(app, uri="mongodb://localhost:27017/traffic") # 開啟資料庫例項

pymongo:

import pymongo client = pymongo.MongoClient(host='127.0.0.1') #連線

不難看出,flask的外掛中,直接將資料庫的名字 traffic 作為 url 地址寫入其中,在接下來使用的時候,便可以不用去選定庫名了。

對比下查詢操作:

@app.route('/user/<string:age>')def query_user(age): if age: users = mongo.db.person.find({'age': age}) print(type(users)) print(users) if users: return render_template('user.html', users=users) else: return 'No user found!'if __name__ == "__main__": app.run(host='127.0.0.1', port=8080)

這部分程式碼是通過設定路由函式,當我們訪問 /user/age 時,便可以將年齡作為引數條件,去查詢資料庫中的使用者資訊。

Flask-PyMongo:

users = mongo.db.person.find({'age': age})

pymongo:

db = client.trafficcollections = db.person # 建立集合,student 相當於 mysql 的表名result2 = collections.find({'age': '22'})

發現了吧,其實除了開啟資料庫例項的時候不同,剩下關鍵查詢時的操作都是一樣的!所以就不一一介紹了,想看具體操作可以回顧 pymongo 操作的 3 篇文章。

總結

網頁版相關教程寫到這裡就結束了,所有教程都是很基礎的入門教程。歷時一個月,終於完成啦,關於 flask 和 mongo 的知識點其實很多,但是可以通過去查閱官方文件來幫助學習。用到的時候,去查文件就好了!

離實時交通的專案,就差一個如何去呼叫高德地圖提供的介面講解了。下篇打算寫下,如何使用 requests 庫來呼叫高德地圖提供的資料,以便自己的專案使用!

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 一篇輕鬆搞定介面跨域