[英]Retrieving data from Mongodb and show it on front-end using django
我有一个名为world
的 mongodb 数据库,它有两个来自之前city
的集合, languages
。 我想在网上展示我收藏的数据,我该怎么做。
目前我知道在models.py
中创建collection
并迁移它。 喜欢; 首先我们必须在setting.py
中编辑数据库[]
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'world',
}
}
在models.py
我创建了一个类并使用python manage.py migrate
迁移它
class Destination(models.Model):
name= models.CharField(max_length=100)
img=models.ImageField(upload_to='pics')
desc=models.TextField()
我可以使用views.py
中的以下代码从Destination
中检索数据
from django.shortcuts import render
from .models import Destination
def index(request):
dests=Destination.objects.all()
return render(request,'index.html',{'dests':dests})
我的问题是我的收藏/班级已经在数据库( city
, language
)中可用,我没有创建它与我定义的Destination
相反。 那么如何在前端展示world
数据库的city
集合数据。 请寻求帮助。
如果我正确地理解了你,那么你就有了一个名为world
的 MongoDB 数据库。 在开始设置 Django 之前,您存储了city
和languages
。 然后您添加了一个Destination
模型,从而创建了一个新集合。 目前,您正在寻找一种获取city
和languages
集合数据的方法,就像使用Destination
一样。
所以有多种方法可以处理它:
city
和languages
集合创建 Django 模型(定义现有集合中的字段):class City(models.Model):
field1 = ...
field2 = ...
class Meta:
db_table = 'city' # important, should be your existing collection name
class Language(models.Model):
field3 = ...
field4 = ...
class Meta:
db_table = 'languages' # important, should be your existing collection name
现在您可以像使用Destination
模型一样使用City
和Language
。
PyMongo
(在您使用Djongo
已经安装)。 所以你的剪断看起来像:from django.shortcuts import render
from .models import Destination
import pymongo
# default localhost connection URL
MONGO_URL = 'mongodb://localhost:27017'
connection = pymongo.MongoClient(MONGO_URL)
mongo_db = connection.world
def index(request):
collection_city = db['city']
collection_languages = db['languages']
cities = list(collection_city.find())
languages = list(collection_languages.find())
dests=Destination.objects.all()
return render(
request,
'index.html',
{
'dests': dests,
'cities': cities,
'languages': languages
}
)
我会使用选项 1 ,因为它可以让您保持项目的连贯性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.