前言
今天来介绍下如何将 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 库来调用高德地图提供的数据,以便自己的项目使用!
今天这篇文章略短,篇幅多以代码为例讲解,大家如果有什么问题,欢迎留言区留言!
推荐阅读:旗龙网
-
猪肉价格还要涨多久?
最近一段时间,猪肉价格持续高位运行,受到各方关注。当前,生猪生产和供应形势如何?非洲猪瘟防控情况怎样?养殖场户面临哪些困难?未来猪价走势如何?春节前猪价仍将高位...
2019-09-05 -
家电半年考:格力、美的空调肉搏 营收差距已不
海尔与第二梯队空调玩家整体下滑;彩电行业量价齐跌。驶入“慢车道”的家电行业,今年上半年仍未走出疲软窘境。中国家用电器研究院和全国家用电器工业信息中心数据显示,2...
2019-09-05 -
上海Costco开业香奈儿被抢光,肉价这么高
中国人的消费能力呀,一直是被全世界人所震惊的!而近期最火的一个话题,莫过于Costco在上海开设了首家店铺对于这个超市,很多人都是在INS上见过照片,例如这样的...
2019-09-05 -
蒙牛蒙牛,你和伊利的差距怎么越来越大?
以前蒙牛是中国乳企老大,直到2011年伊利才首次超越了蒙牛,随后蒙牛和伊利的差距越来越大,到2018年两者之间的营收差距已经超过100亿,净利润相差34亿,为什...
2019-09-05 -
9月5日猪价10省下跌,又下一城!猪肉是否会
了解更多三农资讯,请点击上方关注本号!进入9月,猪价涨势受阻,连续5天的稳中有跌,近两天跌势更加明显,9月4日是“13个省份下跌、5个省上涨”,9月5日猪价下跌...
2019-09-05 -
马应龙、999皮炎平也卖口红,跨界掘金还是炒
时代周报记者:骆一帆“口红一哥”李佳琪的淘宝直播间中,最新一期9月3日直播视频观看次数再度超过277万次。曾经一场直播试色380支口红的他,曾创下五分钟带货35...
2019-09-05 -
刘强东演讲:我如何从卖碟做到身家六百亿
现在只要有一个主意,你可以拿到3000万美金的投资,真的很容易,很多人很高兴,但是不要忘了,你拿到多少融资不是你的财富,你拿到多少融资,你将来就要10倍、20倍...
2019-09-05 -
中秋临近 12省猪价却下跌,难道猪价要大跌?
距离中秋节还有10天的时间,根据往年的经验,中秋节是上半年的消费低谷向下半年消费高峰转变的关键时期,所以几乎每年的中秋节前生猪价格都会有一定的涨幅,而且在民间素...
2019-09-05