首页 > 代码库 > Python网络编程05----django与数据库的交互
Python网络编程05----django与数据库的交互
介绍
Django为多种数据库后台提供了统一的调用API,在Django的帮助下,我们不用直接编写SQL语句。Django将关系型的表(table)转换成为一个类(class)。而每个记录(record)是该类下的一个对象(object)。我们可以使用基于对象的方法,来操纵关系型数据库。
设置数据库
设置数据库需要修改settings.py文件
如果使用的数据库是mysql:
[python] view plaincopy
- DATABASES = {
- ‘default‘: {
- ‘ENGINE‘ : "django.db.backends.mysql"
- ‘NAME‘ : "djangodb"
- ‘HOST‘ : "localhost"
- ‘USER‘ : "root"
- ‘PASSWORD‘ : "123456" #
- }
- }
如果没有安装mysql,你也可以使用sqlite。SQLite非常适合测试,甚至可以部署在没有大量并发写入的情况下。
由于SQLite使用的本地文件系统作为存储介质并且用原生的文件系统权限来做访问控制,像主机、端口、用户、密码这种信息统统不需要
只需要输入如下信息:
[python] view plaincopy
- DATABASES = {
- ‘default‘: {
- ‘NAME‘: r‘C:\mysite\db\test.db‘, #db目录需要自己创建
- ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
- }
- }
设计Model
在传统的关系型数据库中,数据模型是表。在Django下,一个表为一个类。表的每一列是该类的一个属性。在models.py中,我们创建一个只有一列的表,即只有一个属性的类:from django.db import models class Test(models.Model): #用于定义数据模型的类 name = models.CharField(max_length=100) #name列,数据类型为char,长度为100 def __unicode__(self): return self.name命令Django同步数据库。Django根据models.py中描述的数据模型,在MySQL中真正的创建各个关系表:$python manage.py syncdb
设置View
事先向数据库中插入两条数据下面我们从数据库中取出数据,并返回给http请求。在blog/views.py中,添加视图。对于对应的请求,我们将从数据库中读取所有的记录,然后返回给客户端:
# -*- coding: utf-8 -*- from django.http import HttpResponse from blog.models import Test def outStr(request): blog_list = Test.objects.all() blog_str = map(str, blog_list) return HttpResponse("<p>" + ' '.join(blog_str) + "</p>")
为了让http请求能找到上面的程序,在blog/urls.py增加url链接:
from django.conf.urls import patterns, include, url urlpatterns = patterns('', # Examples: # url(r'^$', 'myweb.views.home', name='home'), url(r'^$', 'blog.views.outStr'), )
访问127.0.0.1:8000/blog
上一讲:Python网络编程04----初识Django
下一讲:
如果有什么疑问欢迎到我的微信公众号提问~
Python网络编程05----django与数据库的交互
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。