Django operation mongodb

My project has been used mysql, now want to design two tables using mongodb database for storage.

The following steps (see the start MongoDB installed in https://www.cnblogs.com/huanhuaqingfeng/p/11188024.html)

1, 安装 mongoengine

     Pip install mongoengine

     In the django, mongoengine connector is to mongodb database django

2, modify settings.py

      

DATABASES = {

'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'builddatabase',
'USER': 'root',
'PASSWORD': 'likeshe',
'HOST': '127.0.0.1',
'PORT': '3306',
},
'db1': {
'ENGINE':None,
}
}

import mongoengine #导入mongoengine
conn = mongoengine.connect ( "Print_Analysis") ## Print_Analysis, the name of my database mongodb 

3, add a table models.py class in my application in Print_Analysis
import mongoengine 

class log_info (mongoengine.Document)
fun_name = mongoengine.StringField (max_length = 100)
dir_name = mongoengine.StringField (max_length = 100)
log_name = mongoengine.StringField (max_length = 100)
path = mongoengine.StringField (max_length = 255)
status = mongoengine.StringField (max_length = 16)
case_num mongoengine.IntField = ()
half_case_num mongoengine.IntField = ()
fail_case_num mongoengine.IntField = ()
line_num mongoengine.IntField = ()
case_ids mongoengine.ListField = ()

class case_info (mongoengine. Document)
funtion = mongoengine.StringField (max_length = 255)
exe_status = mongoengine.StringField (max_length = 16)
line_start mongoengine.IntField = ()
line_end mongoengine.IntField = ()
error_count mongoengine.IntField = ()
level = mongoengine.IntField ()
sucess_num mongoengine.IntField = ()
fail_num mongoengine.IntField = ()
status_info mongoengine.ListField = ()

4 , Print_Analysis在的view.py中添加测试代码
def anlaysis_result_test():
var = log_info.objects.create(fun_name="123", dir_name="456", log_name="11.log", path="/usr/local/cc.log", status="sucess",
case_num=0, half_case_num=0,fail_case_num=0,line_num=0,case_ids=None)
print(var)
return {'status': 'already'}
def index(request):    
logger.info("request.method=%s" ,request.method)
#logger.info("request.body=%s" ,request.body)
logger.info("content_type=%s",request.content_type)
logger.info( "user=%s",request.user.username)
logger.info( "is_authenticated=%d",request.user.is_authenticated())
logger.info( "request.path=%s",request.path)
if not request.user.is_authenticated():
return HttpResponseForbidden()

if request.method=='POST':
body = eval(request.body)
op_type = str(body['op_type'])
if op_type == 'anlaysis_result_test':
result=anlaysis_result_test()
jsonResponse return (the Result)

5, url routing, Print_Analysis add urls.py and get in settings.py in here do not say. (You can view https://www.cnblogs.com/huanhuaqingfeng/p/11101751.html)

6, Python test code
def anlaysis_test():    
data = {}
data['op_type'] = "anlaysis_result_test"
response = httprequest.post(url_path + "print_analysis/", json=data)
print response.text

if __name__ == '__main__':          
anlaysis_test () 

7, viewing database
   After performing the test, check the database 
./ mongo into the shell

   show dbs display all existing database mongodb

   use Print_Analysis switch to my Print_Analysis database

  Print_Analysis show tables displayed in a table (called set)

  db.log_info.find () to view the collection of data log_info

Guess you like

Origin www.cnblogs.com/huanhuaqingfeng/p/11198711.html