मैं इन सबके लिए नया हूं, अभी भी सीख रहा हूं।

अब मेरे लिए काम mongodb . का उपयोग करके सर्च बार बनाना है

मैंने अब तक क्या किया है

  • pymongo का उपयोग करके कनेक्शन स्थापित करने के लिए mongodb_connection.py बनाया
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)
  • model.py जोड़ा
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>

समस्या यह है कि मैं मोंगोडब से डेटा प्राप्त कर रहा हूं। मुझे लगता है कि मैं काफी करीब हूं। जैसे ही मैं खोज में मान दर्ज करता हूं और सबमिट दबाता हूं, यह निम्नलिखित में त्रुटियां करता है।

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 फ़ाइल को चालू करने के लिए उसमें क्या परिवर्तन कर सकता हूँ? कृपया सलाह दें कि अगर यहां कुछ भी गायब है। जैसा कि मुझे मोंगोडब से डेटा लाने और इसे खोज के तहत प्रदर्शित करने की आवश्यकता है।

एक बार फिर धन्यवाद।

0
red barret 5 फरवरी 2020, 05:14

1 उत्तर

सबसे बढ़िया उत्तर

बस अपना पहला कार्य देख रहे हैं, रेखा:

    for title in titles:

संदर्भ titles इसे कहीं भी परिभाषित करने से पहले। आपका मतलब हो सकता है:

    titles = collection.find()
    for title in titles:
1
Belly Buster 6 फरवरी 2020, 01:12