Django 访问数据库
通过命令行方式访问数据库:
[root@localhost web]$ python manage.py shell # 进入交互模式(先安装ipython) In [1]: from blog.models import Host # 导入数据模型 In [4]: node = Host.objects.all() # 实例化一个模型管理对象,通过这个对象来操作数据库 In [6]: node.values() # 查询数据,相当于 select * from Host In [8]: n1 = Host(hostname='node01', ip='192.168.1.1') # 插入数据,结果返回一个表对象,需要通过对象来保存插入的数据 In [9]: n2 = Host(hostname='node02', ip='192.168.1.2') # 插入数据,结果返回一个表对象,需要通过对象来保存插入的数据
In [10]: n1.save() # 保存到数据库,可以通过上面的 node.values() 查询插入的数据
In [11]: n2.save() # 保存到数据库,可以通过上面的 node.values() 查询插入的数据
In [20]: n3 = Host() # 第二种插入数据的方法,先实例化一个表对象,再通过对象来插入/保存数据 In [21]: n3.hostname = 'node03' In [22]: n3.ip = '192.168.1.3' In [23]: n3.save()
通过视图文件访问数据库:
[root@localhost web]$ cat web/urls.py urlpatterns = patterns('', .... url(r'^db/$', 'blog.views.db'), # 先定义访问的URL,然后再根据URL定义视图文件 )
[root@localhost web]$ cat blog/views.py from django.shortcuts import render from django.http import HttpResponse from django.template import loader, Context from blog.models import Host
def db(request): h = Host() h.hostname = 'node04' h.ip = '192.168.1.4' h.save() return HttpResponse("OK")
通过 Web 界面访问数据库:
[root@localhost web]$ cat blog/admin.py # 首先需要在应用的后台管理站点配置中注册模型 from django.contrib import admin # 注册的目的是为了让数据模型在Web后台界面中显示 from blog.models import Host # 导入数据模型 class HostAdmin(admin.ModelAdmin): list_display = ['hostname', 'ip'] # 指定要显示的字段 admin.site.register(Host, HostAdmin) # 注册数据模型
[root@localhost web]$ python manage.py runserver 0.0.0.0:8000 # Starts a lightweight Web server for development