当前位置: 首页 > 工具软件 > Mango APP > 使用案例 >

Django连接Mangodb

杨君之
2023-12-01

一、修改settings.py

  1. 引入mongoengine 包
  2. 数据库默认设置不需要修改,直接在设置文件添加以下语句:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test1',
        'HOST': '127.0.0.1',
        'USER': 'root',
        'PASSWORD': '20171127'
    }
}
from mongoengine import connect
connect('test1', host='localhost', port=27017, username='admin',
        password='171127', authentication_source='admin')
  1. 在INSTALLED_APPS注册mongoengine
 INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myApp.apps.MyappConfig',
    'mongoengine',
]

二、models.py

定义数据库结构,每个类名对应数据库名的collection名,即表名。

from mongoengine import *

class Student(Document):
    name = StringField(max_length=50)
    age = IntField(required=False)

注意: 不需要执行数据库的迁移

三、views.py

from django.shortcuts import render
from .models import Student
#插入新数据
def get(request):
	StudentModel.objects.create(name='水痕', age= 20)
    return HttpResponse('hello word') 
#获取全部数据

def students(request):
    # 去模型里取数据
    student_list = Student.objects.all()
    # 将数据传递(render)给模板
    return render(request, "myApp/students.html", {"students": student_list})

def students_page(request):
    student_info = Student.objects.filter(name='水')
    return render(request, 'myApp/students_page.html', {'students': student_info[0]})

注意: 查询到的数据student_info的是数据集合

四、urls.py

  1. project/urls.py
 urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include(('myApp.urls', 'myApp'), namespace='myApp'), ),
]
  1. app/urls/py
    首先在app目录下创建urls.py文件
urlpatterns = [
    path('students/', views.students, name='students'),
    path('students_page/', views.students_page, name='students_page')
    ]
 类似资料: