Ame*_*lia 5 python mongodb flask
我的服务器上有一堆单词表,并且我一直打算制作一个简单的开源JSON API,作为密码验证方法,如果密码在列表1上,则返回该API 。我正在使用Flask在Python中执行此操作,并且实际上只是返回是否存在输入。
一个小问题:单词列表总计约1.5亿个条目和1.1GB的文本。
我的API(最低要求)如下。将所有行存储在MongoDB中并重复查找,或者使用单例将整个内容存储在内存中,并在我调用时在启动时填充它,效率更高app.run吗?还是差异是主观的?
此外,做后者甚至是一种好的做法?我认为如果我向公众开放此功能,查找可能会变得很麻烦。我也有人建议使用Trie进行有效搜索。
更新:我已经做了一些测试,并且如此大量的记录使文档搜索非常缓慢。是否有必要为需要有效搜索的单列数据使用具有适当索引的数据库?
from flask import Flask
from flask.views import MethodView
from flask.ext.pymongo import PyMongo
import json
app = Flask(__name__)
mongo = PyMongo(app)
class HashCheck(MethodView):
def post(self):
return json.dumps({'result' :
not mongo.db.passwords.find({'pass' : request.form["password"])})
# Error-handling + test cases to come. Negate is for bool.
def get(self):
return redirect('/')
if __name__ == "__main__":
app.add_url_rule('/api/', view_func=HashCheck.as_view('api'))
app.run(host="0.0.0.0", debug=True)
Run Code Online (Sandbox Code Playgroud)
1:我是安全帽。我在我的登录表单中使用它,并拒绝常见输入。词表之一是UNIQPASS。