Я новичок во всем этом, все еще учусь.
Теперь задача для меня - создать панель поиска, используя mongodb
Что я сделал до сих пор
- создал файл mongodb_connection.py для установки sh соединения с помощью pymon go
from pymongo import MongoClient
def mongosearch(title=""):
connection = MongoClient('localhost',27017)
db = connection.djangodb
collection = db.spiderCollection
title = collection.find()
for title in titles:
pprint.pprint()
- создал представление и метод импорта из mongodb_connection следующим образом:
from django.shortcuts import render
from django.http import HttpResponse
from .mongodb_connection import mongosearch
from .models import AppModel
# Create your views here.
def search_view(request):
results = []
title_term = ""
search_term = ""
titles = AppModel.objects.all()
if 'search' in request.GET:
search_term = request.GET['search']
titles = titles.filter(title__icontains=search_term)
results = mongosearch(title=title_term)
print(results)
context={
'results':results,
'count':len(results),
'search_term':search_term,
'titles':titles
}
return render(request, 'search.html', context)
from django.db import models
class AppModel(models.Model):
title = models.CharField(max_length=100, primary_key=True)
desc = models.CharField(max_length=100)
url = models.CharField(max_length=100)
class Meta:
db_table = "spiderCollection"
from django.urls import path, include
from . import views
from django.conf.urls import url
app_name = 'searchapp'
urlpatterns=[
path('',views.search_view, name='search_view'),
]
- создал html страницу в приложениях / шаблонах
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<!doctype html>
<html>
<nav class="navbar navbar-light bg-light">
<form class = "form-inline my-2 my-lg-1">
<input
class="form-control mr-sm-2"
type="search"
placeholder="Search"
aria-label="Search"
name = 'search'
value = "{{request.GET.search}}">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
<ul>
{%for i in titles %}
<li>
{{i.titles}}
</li>
{% endfor %}
</ul>
</form>
</nav>
</html>
Проблема в том, что я получаю данные из mongodb. Я думаю, что я довольно близко. Как только я ввожу значения в поиске и нажимаю «Отправить», происходит следующее:
Exception Type: NameError
Exception Value:
name 'titles' is not defined
Exception Location: /Users/qasimbutt/PycharmProjects/IntegratedProject/searchui/searchapp/mongodb_connection.py in mongosearch, line 9
Может кто-нибудь мне помочь, какие изменения я могу внести в файл mongodb_connection.py, чтобы он начал работать? Также, пожалуйста, сообщите, если что-то здесь отсутствует. Поскольку мне нужно получить данные из mongodb и отобразить их при поиске.
Еще раз спасибо.