吉林信息港
您當前的位置 :主頁 > 吉林信息港 > 時尚 > 正文
Flask結合MongoDB
2020-03-30 09:06:55來源:閱讀:-

前言

今天來介紹下如何將 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 涉及的代碼:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><h1>咪哥雜談</h1><hr/><h3>展示區 Users:</h3><ul>    {% for user in users %}        <li>姓名:{{ user.name }}, 年齡:{{ user.age }}, 身高:{{ user.height }}, 體重:{{ user.weight }}</li>    {% endfor %}</ul></body></html>

通過 jinjia2 的語法,將后端 python 傳入的用戶數據分別以無序的形式打印出來。后端 flask 在向前端傳遞值時,從 MongoDB 中查出的是以變量名為 users 傳到此頁面上。

遍歷每條用戶信息,將符合的用戶信息以無序的形式展現在網頁上。

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 庫來調用高德地圖提供的數據,以便自己的項目使用!

今天這篇文章略短,篇幅多以代碼為例講解,大家如果有什么問題,歡迎留言區留言!

推薦閱讀:蘋果手機驗機軟件

版權和免責申明

吉林信息港所有文字、圖片、視頻、音頻等資料均來自互聯網,不代表本站贊同其觀點,本站亦不為其版權負責。相關作品的原創性、文中陳述文字以及內容數據龐雜本站無法一一核實,如果您發現本網站上有侵犯您的合法權益的內容,請聯系我們,本網站將立即予以刪除!

篮球让分胜负刚好 30选5 上海11选5任二推荐 11选五新版中奖助手 2019最新宝妈群二维码 天津体彩十一选五开 黑龙江快乐十分 广西快3计划 有没有好股票推荐 江苏快三漏洞8分30秒 黑龙江快乐十分分析软件 福彩3d论坛乐彩 安徽快三多少分钟一期 黑龙江11选五助手下载 上证指数怎么买 深圳风采2011093 贵州十一选五遗漏追号