`
xiaolin0199
  • 浏览: 573055 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MongoDB简单django实战

 
阅读更多

 

官方文档非常重要

http://api.mongodb.org/python/1.11/

http://www.mongodb.org/

 

这里我们是安装 pymongo

 

$easy_install pymongo
1、安装easy_install工具,它的作用类似于Php中的pear,或者Ruby中的gem,或者Perl中的cpan。
2、使用快捷的方法是使用ez_setup.py脚本:
   #wget -q http://peak.telecommunity.com/dist/ez_setup.py
   #python ez_setup.py
   实例:比如说要安装Python的MySQL支持,可以执行如下命令,系统会自动在pypi网站列表里查找相关软件包:
   easy_install MySQL-python

   这里我们是安装 pymongo
   easy_install pymongo

   如果想删除通过easy_install安装的软件包,比如说:MySQL-python,可以执行命令:
   easy_install -m MySQL-python

 

 

一个例子

 

#coding=utf-8
from pymongo import Connection
conn = Connection("localhost")
db = conn.foo
test = {"id":1, "novle":"测试一下"}
db.foo.save(test)
cursor = db.foo.find()
for i in cursor:
    print i

 

 

带有权限认证的例子

 

#coding=utf-8

from pymongo import Connection,database
conn = Connection("localhost")
db = database.Database(conn,"foo")
r = db.authenticate("test","123")
print r

cursor = db.foo.find()
print cursor
for i in cursor:
    print i

 

输出:

 

!python simple.py
True
<pymongo.cursor.Cursor object at 0x802858f90>
{u'_id': ObjectId('4ee9a3aa283b6db0dc000000'), u'id': 1, u'novle': u'\u6d4b\u8bd5\u4e00\u4e0b'}

 

 

Django操作NOSQL(MongoDB)数据库

http://dmyz.org/archives/251

 

Django用mongodb入门例子

http://artori.us/use-mongodb-with-django/

 

安装这个 mongoengine 必须的

 

sudo easy_install mongoengine

Searching for mongoengine
Reading http://pypi.python.org/simple/mongoengine/
Reading http://hmarr.com/mongoengine/
Best match: mongoengine 0.5.2
Downloading http://pypi.python.org/packages/source/m/mongoengine/mongoengine-0.5.2.tar.gz#md5=3d7becee075cf3a3d2a88c85dd42b053
Processing mongoengine-0.5.2.tar.gz
Running mongoengine-0.5.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-LUDBKj/mongoengine-0.5.2/egg-dist-tmp-Dpom4g
0.5.2
no previously-included directories found matching 'docs/_build'
zip_safe flag not set; analyzing archive contents...
Adding mongoengine 0.5.2 to easy-install.pth file

Installed /usr/local/lib/python2.6/site-packages/mongoengine-0.5.2-py2.6.egg
Processing dependencies for mongoengine
Finished processing dependencies for mongoengine

 

 

创建一个 Django项目来测试

 

guanyu/branches/lidong/mongodb-tests]$ django-admin.py startproject mongodbtest

cd mongodbtest
$ python manage.py startapp helloworld

 

 

编辑3个文件

 *urls.py

 *helloworld/models.py

 *helloworld/views.py

 

urls.py

 

    (r'^$','mongodbtest.helloworld.views.index'),

 

 

 

helloworld/models.py

 

#from django.db import models
from mongoengine import *
connect('test')

class PhoneModel(Document):
    name = StringField(required=True)
    phone = StringField(max_length=50)


 

 

helloworld/views.py

 

from django.http import HttpResponse
from models import  PhoneModel

def index(request):
    entry = PhoneModel(name='lidong')
    entry.phone = '13410320008'
    entry.save()
    resp = "hello %s , phone :%s" %(entry.name, entry.phone) 
    return HttpResponse(resp)

 

 

检查数据库中的数据

 

$python
>>> from pymongo import Connection
>>> conn = Connection("localhost")
>>> db = conn.test
>>> db.collection_names()
[u'system.indexes', u'phone_model']
>>> collect = db['phone_model']
>>> collect.find_one()
{u'_types': [u'PhoneModel'], u'phone': u'13410320008', u'_id': ObjectId('4eeae3a5283b6d11c1000000'), u'name': u'lidong', u'_cls': u'PhoneModel'}
>>> 

 

 

该项目测试代码

[lidong@lidong-office ~]$ python
Python 2.6.6 (r266:84292, Dec  2 2010, 11:12:27) 
[GCC 4.2.1 20070719  [FreeBSD]] on freebsd8
Type "help", "copyright", "credits" or "license" for more information.
>>> from pymongo import Connection
>>> connection = Connection('localhost')
>>> testdb = connection.test
>>> testdb.collection_names()
[u'system.indexes', u'phone_model']
>>> phone_collection = testdb.phone_model
>>> record1 = phone_collection.find_one()
>>> record1
{u'_types': [u'PhoneModel'], u'phone': u'13410320008', u'_id': ObjectId('4eeae3a5283b6d11c1000000'), u'name': u'lidong', u'_cls': u'PhoneModel'}
>>> phone = record1.phone
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'phone'
>>> phone = record1[phone]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'phone' is not defined
>>> phone = record1['phone']
>>> phone
u'13410320008'
>>> 

 

 

分享到:
评论

相关推荐

    Python全面学习(Linux系统,MySQL,MongoDB,Django框架,多线程,socket编程,机器学习,数据分析).zip

    该课程从Python从零基础开始学习,包含了详细的Python基础,Python语法,基础逻辑算法,爬虫技术,和Django框架。也涵盖了Linux操作系统的学习,数据库Mysql和MangoDB。并涉及到数据分析和机器算法。

    详解django+django-celery+celery的整合实战

    ### 详解 Django + Django-Celery + Celery 的整合实战 #### 一、Celery简介与功能概述 Celery 是一款强大的分布式任务队列系统,主要用于处理大量的后台任务,包括但不限于异步任务处理和定时任务调度。其核心...

    mongodb开发精要 书籍 两本PDF

    MongoDB可以轻松地与各种开发框架和工具集成,如Express.js(MEAN stack的一部分)、Spring Boot、Django等,为开发人员提供便利。 通过深入学习这两本"MongoDB开发精要",你将掌握MongoDB的核心技术和最佳实践,...

    完整版 Python高级开发课程 高级教程 10 Python Web开发框架Django实战.pptx

    ### Python Web开发框架Django实战 最后,课程的重点落在了Django框架上。Django是一个基于MTV(Model-Template-View)模式的全功能Web框架,学员将学习如何创建项目和应用、定义模型、编写视图、模板设计,以及设置...

    基于Django的Web日志分析可视化系统python+css源码(ECharts+MongoDB).zip

    基于Django的Web日志分析可视化系统python+css源码(ECharts+MongoDB).zip 基于Django的Web日志分析可视化系统python+css源码(ECharts+MongoDB).zip 基于Django的Web日志分析可视化系统python+css源码(ECharts+...

    MongoDB安装包,图形化工具,资料打包

    3. **资料打包**:压缩包中的资料可能包括MongoDB的官方文档、教程、实战指南、API参考等内容。这些资源对于初学者和经验丰富的开发者来说都是宝贵的,它们可以帮助你理解MongoDB的基本概念,学习如何操作数据库,...

    基于树莓派的门禁管理系统完整源码+说明(技术点:树莓派、RFID、Django、MongoDB)(python).zip

    【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。...基于树莓派的门禁管理系统源码+项目说明(技术点:树莓派、RFID、Django、Flask、MongoDB)(python).zip

    廖雪峰 教程

    4. **其他教程**:除了上述主流技术,廖雪峰的技术教程还包括MongoDB数据库的使用、正则表达式、Docker容器化技术、前端框架Vue.js的基础知识,以及Linux命令行操作等。 通过学习这些教程,不仅可以提升个人的编程...

    一个使用Python、Django和MongoDB构建的多用户博客系统.zip

    Python使用技巧,实战应用开发小系统参考资料,源码参考。经测试可运行。 详细介绍了一些Python框架的各种功能和模块,以及如何使用Python进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者...

    完整版 Python高级开发课程 高级教程 全套PPT课件 含源代码 共10个章节.rar

    【完整课程列表】 Python高级开发课程 高级教程 01 Python语言开发要点详解.pptx Python高级开发课程 高级教程 02 Python数据结构.pptx ...Python高级开发课程 高级教程 10 Python Web开发框架Django实战.pptx

    python115基于大数据的电影市场预测分析(django).rar

    标题中的“python115基于大数据的...总之,这个项目是一个全面的实战练习,涵盖了从数据获取到Web应用开发的全过程,对于想要提升Python编程、大数据分析以及Django框架应用能力的学习者来说,是一个极好的学习资源。

    Python企业级全技术栈开发 高级爬虫实战+机器学习+人脸识别+语音识别+金融项目实战等

    课程以ubuntu系统开篇进行Ptython...而在应用和项目课程部分则是更加的丰富,从商城项目实战,高级爬虫实战,数据分析基础,机器学习,人脸识别,语音识别,东方财富金融交易云系统等等,非常的适合当下的学习和应用。

    python125基于知识图谱电影推荐问答系统(django).rar

    8. **学习价值**:对于学习者而言,这个项目提供了实践Django框架、知识图谱应用以及前后端协作的实战机会,有助于提升Web开发技能和理解推荐系统的设计原理。 这个项目综合运用了多种IT技术,对于想要深入理解...

    租房网站信息分析项目(Vue+Django+Scrapy).zip

    项目可能的工作流程如下:首先,Scrapy爬虫定时或按需从租房网站抓取数据,然后将数据存储到数据库(如MySQL或MongoDB)。接着,Django后端接收到Vue.js前端的请求,通过查询数据库并处理数据,返回所需的JSON格式...

    全栈工程师实战

    全栈工程师需要掌握的技能非常广泛,包括但不限于前端技术(如HTML、CSS、JavaScript)、后端技术(如Node.js、Python的Django框架)、数据库技术(如MySQL、MongoDB)、以及自动化测试(如Selenium)和持续集成工具...

    code.zip.web全栈工程师实战源码,

    MySQL、PostgreSQL、MongoDB等数据库系统被广泛应用。源码可能包含了数据库模型设计、CRUD操作、事务处理和性能优化的示例,有助于理解如何在实际项目中高效地使用数据库。 四、原理分析 全栈工程师不仅要能编写...

    精选9个实战Vue开发项目.docx

    七、Vue.js 和 Django 仿简易版实验楼 - 一个 Vue.js 和 Django 的仿简易版实验楼项目 这个项目通过用 Vue.JS 实现了网站“实验楼”的一些页面。首先,从调试代码开始,通过 chrome 工具分析网络逆向分析网站 API,...

    仿”每日优鲜“项目实战.zip

    "仿”每日优鲜“项目实战.zip"是一个针对电商平台开发的实战项目,旨在帮助开发者或学习者通过模拟真实的在线生鲜购物平台,提升自己的编程技能和项目经验。该项目可能涵盖了前端界面设计、后端数据处理、数据库管理...

    python源码笔记实战 物超所值

    python笔记包括基础和实战+源码,物超所值。 目录: 01-Linux基础 02-Python基础第一部分 03-Python基础第二部分 04-Python基础第三部分 05-面向对象 06-MySQL 07-网络编程 08-多线程 09-MongoDB数据库 10-正则...

    开源框架实战宝典电子书.zip

    除此之外,书中还可能涉及其他流行的开源框架,如React、Vue.js、Hibernate、MyBatis、Flask、Django Channels等,并针对每个框架提供实战案例,帮助读者将理论知识转化为实际操作能力。 通过对这些开源框架的学习...

Global site tag (gtag.js) - Google Analytics