原創(chuàng)文章轉(zhuǎn)載請(qǐng)標(biāo)明出處
環(huán)境配置
使用mongoengine操作數(shù)據(jù)庫(kù)
pip install django
pip install djangorestframework
pip install mongoengine
因?yàn)镸ongoengine和Pymongo版本不兼容
pip uninstall pymongo
pip install pymongo==2.8
在目標(biāo)文件下
創(chuàng)建django項(xiàng)目
project為項(xiàng)目名稱
django-admin.py startproject project
進(jìn)入根目錄 然后我們創(chuàng)建一個(gè)app称鳞,來(lái)構(gòu)建簡(jiǎn)單的Web API蒙畴。
cd tproject
python manage.py startapp postapi
postapi為app名稱
準(zhǔn)備工作完畢
使用pycharm打開(kāi)整個(gè)目錄
目錄結(jié)構(gòu)如圖
(新建項(xiàng)目無(wú)serializers.py和postapi/urls.py 文件)
1501682018(1).jpg
打開(kāi)編輯mongotest/setting.py
添加
INSTALLED_APPS = (
...
'rest_framework',
'postapi' #app名稱
)
連接數(shù)據(jù)庫(kù) 并建立數(shù)據(jù)庫(kù)模型
本教程使用本地mongodb數(shù)據(jù)庫(kù)為測(cè)試對(duì)象
安裝并啟用本地?cái)?shù)據(jù)庫(kù)mongodb安裝配置啟動(dòng)教程 安裝并使用robo 3T連接數(shù)據(jù)庫(kù)
image.png
如連接云mongodb 首先需在云服務(wù)器mongodb配置密碼(不是云服務(wù)器賬號(hào)密碼)
并在這配置數(shù)據(jù)庫(kù)賬號(hào)密碼
image.png
數(shù)據(jù)庫(kù)模型用來(lái)存儲(chǔ)代碼片段。那么來(lái)編輯 postapi/models.py
文件吧。注意:一個(gè)好的編程實(shí)踐會(huì)含有注釋
首先我們來(lái)了解下mongo結(jié)構(gòu)
image.png
#coding=utf-8
from __future__ import unicode_literals
from mongoengine import *
from django.db import models
#
connect('lxqcxcy', host='127.0.0.1', port=27017) #lxqcxcy為庫(kù)名
# Create your models here.
class Post(Document):
_id = ObjectIdField()
title = StringField()
# # url = scrapy.Field() # 帖子的網(wǎng)頁(yè)鏈接
author = StringField() # 帖子的作者
post_time = StringField() # 發(fā)表時(shí)間
mainimg_url = StringField()
summary = StringField() #概述
tag = StringField() #標(biāo)簽
post_from = StringField()
content = StringField() # 帖子的內(nèi)容
meta = {'collection': 'Post'} #連接指定表
for i in Post.objects[:10]: # 測(cè)試是否連接成功
print(i._id)
mongoengine models 與django models還是有一定區(qū)別
右鍵點(diǎn)擊models.py單獨(dú)運(yùn)行測(cè)試數(shù)據(jù)庫(kù)是否正常連接