1,flask
启动问题、数据库解决
WARNING: This is a development server. Do not use it in a production deployment. falsk
WSGI server instead
其实就是
flask
未使用
WSGI
启动,所以使用
wsgi
启动就行了,我找到两种方式,但不知道怎么比较好
坏,但以我的理解,底层都是
wsgi
,只是封装库不同而已。。。
希望大神指点一下
方法一:
from gevent import pywsgi
if __name__ == '__main__':
server = pywsgi.WSGIServer(('0.0.0.0', 5000), app)
server.serve_forever()
方法二:
from wsgiref.simple_server import make_server
if __name__ == '__main__':
server = make_server('', 64570, app)
server.serve_forever()
代码放到
app.py
文件中
2,Python3 pymongo
使用
count
报警告解决办法
AttributeError
:
‘Cursor’ object has no attribute ‘count’
在统计查询结果包含多少条数据的时候,一开始使用的是
find().count()
进行统计,代码如下:
import pymongo
client = pymongo.MongoClient(host='localhost', port=27017)
db = client.test
collection = db.students
count = collection.find().count()
print(count)
运行结果如下:
在网上查找资料发现,
count
方法已经被新版本淘汰了,我们可以使用新的统计方法
estimated_document_count()
db_count = cursor.count_documents({'dt': handle_date})
如果是带条件的查询统计就需要使用
count_documents
db_count = cursor.count_documents({'dt': handle_date})
后面我将
count()
修改为
estimated_document_count()
,运行之后,发现还是报错
后来找到了原因,发现把
find()
方法去掉就可以了
import pymongo
client = pymongo.MongoClient(host='localhost', port=27017)
db = client.test
collection = db.students
count = collection.estimated_document_count()
print(count)
这样问题就解决了
3,报错处理
NotImplementedError: Database objects do not implement truth value testing or bool(). Please compare with None instead: database is not None
config.py文件中if not db:改为if not db is None
import time,pymongo
ip = '127.0.0.1'
port = 27017
database = 'database47'
client = pymongo.MongoClient(ip,port)
# db = None
db = client.database46
# 获取数据库
def get_db():
global db
# 原来是if not db
# if not db:
if not db is None: # -----here
db = client[database]
return db