【发布时间】:2018-10-12 11:50:23
【问题描述】:
我最近开始使用 Django。
我已经使用 PyMongo 模块 [pip3 install pymongo] 集成了 MongoDB。
我的问题:
即使在数据库更新后,Django 也会给我相同的数据。每当我进行一些操作时;就像将用户输入的电子邮件与数据库中现有的电子邮件 ID 进行比较一样,我每次都得到相同的结果。
看起来结果正在被缓存。
Urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.homepage),
path('register/', views.register),
]
Views.py
from django.shortcuts import render
from pymongo import MongoClient
from django import http
def homepage(request):
return (render(request, 'index.html'))
def register(request):
if request.method == 'POST':
name = request.POST['name']
email = request.POST['email']
password = request.POST['password']
client = MongoClient('mongodb://my_ip:27017/')
db = client.trainingdb
collection = db.data
emailCheck = str(collection.find({"Email":email}))
if emailCheck == "":
dbData = {
'Name': name,
'Email': email,
'Password': password
}
collection.insert_one(dbData)
return http.HttpResponse("Success!")
else:
return http.HttpResponse("Email exists in database!")
else:
return render(request, 'register.html')
homepage 方法用于索引页或主页。 register 方法用于注册页面。
在这里,我正在尝试检查用户输入的电子邮件 ID 是否预先存在于数据库中。
测试用例:
第一次,我输入了一个已经在数据库中的电子邮件 ID,我得到了预期的结果:Email exists in database!。
但是第二次,我输入了一个不在数据库中的电子邮件 ID;但我得到了同样的结果:Email exists in database!。
是因为缓存还是类似的原因?
【问题讨论】:
-
不,它不是重复的。请仔细阅读问题并理解我的问题...
-
嗨 Praneeth Karnena;没有缓存会使第二个查询返回不正确的结果。最好仔细检查您的数据,以及用于识别项目是否已存在的代码和查询; Neil 链接的问题中的示例应该对您有用。
-
我发现我们甚至可以使用
None。
标签: python django mongodb mongodb-query pymongo