The Definitive Guide To Django 2 学习笔记(九) 第五章 模型 (一)数据库访问
2013-11-21 15:56
716 查看
以MySql数据库为例,先到http://dev.mysql.com/downloads/connector/python/处下载MysqlConnector for python的连接器。
这样就实现了对mysql数据库的访问,但这样做会有三个缺点:
1.数据库连接字符采用了硬编码的方式 2.我们写了很多样板代码,实际上是可以抽离出来的 3.跟Mysql数据库耦合,如果我们想要换成PostgreSQL,我们需要重新引用一个数据库连接器。
正如你所期待的,Django的数据层解决了这个问题:下面是一个简单的用Django数据库API如何写View页面的预览:
以后会解释这些代码的意思,现在只是看一下如何写的。
MTV(或MVC)开发模式
M代表 Model,T代表 Template,V代表View(有的框架称为MVC,V 代表View,C代表Controller)
如果熟悉MVC模式,很好理解,不熟悉的请查阅相关文档。
配置数据库
在settings.py文件中,像下面这样配置:
DATABASE_ENGINE = ''
DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''
DATABASE_ENGINE可以被设置成下表中的值:
DATABASE_NAME:是你的数据库名称 如果是SQLite就是数据库文件名
DATABASE_USER:用户名
DATABASE_PASSWORD:密码
DATABASE_HOST:主机名
from django.shortcuts import render_to_response import mysql.connector def book_list(request): db = mysql.connector.connect(user='me', db='mydb', passwd='secret', host='localhost') cursor = db.cursor() cursor.execute('SELECT name FROM books ORDER BY name') names = [row[0] for row in cursor.fetchall()] db.close() return render_to_response('book_list.html', {'names': names})
这样就实现了对mysql数据库的访问,但这样做会有三个缺点:
1.数据库连接字符采用了硬编码的方式 2.我们写了很多样板代码,实际上是可以抽离出来的 3.跟Mysql数据库耦合,如果我们想要换成PostgreSQL,我们需要重新引用一个数据库连接器。
正如你所期待的,Django的数据层解决了这个问题:下面是一个简单的用Django数据库API如何写View页面的预览:
from django.shortcuts import render_to_response from mysite.books.models import Book def book_list(request): books = Book.objects.order_by('name') return render_to_response('book_list.html', {'books': books})
以后会解释这些代码的意思,现在只是看一下如何写的。
MTV(或MVC)开发模式
M代表 Model,T代表 Template,V代表View(有的框架称为MVC,V 代表View,C代表Controller)
如果熟悉MVC模式,很好理解,不熟悉的请查阅相关文档。
配置数据库
在settings.py文件中,像下面这样配置:
DATABASE_ENGINE = ''
DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''
DATABASE_ENGINE可以被设置成下表中的值:
DATABASE_NAME:是你的数据库名称 如果是SQLite就是数据库文件名
DATABASE_USER:用户名
DATABASE_PASSWORD:密码
DATABASE_HOST:主机名
相关文章推荐
- The Definitive Guide To Django 2 学习笔记(四) 动态URLs
- The Definitive Guide To Django 2 学习笔记(二) 第二个View 动态内容
- The Definitive Guide To Django 2 学习笔记(七) 第四章 模板 (三)使用模板系统
- The Definitive Guide To Django 2 学习笔记(八) 第四章 模板 (四)基本的模板标签和过滤器
- The Definitive Guide To Django 2 学习笔记(六) 第四章 模板 (二)使用模板系统
- The Definitive Guide To Django 2 学习笔记(一) Views and UrL confsRL
- The Definitive Guide To Django 2 学习笔记(三) URLconfs 和松耦合
- The Definitive Guide To Django 2 学习笔记(五) 第四章 模板 (一)基本模板系统
- Elasticsearch.The.Definitive.Guide学习笔记 -- 3. Data in, Data in
- Elasticsearch.The.Definitive.Guide学习笔记 -- 1. You know, for search
- The Definitive Guide to Installing Django on Ubuntu
- The Definitive Guide to Django: Web Development Done Right
- MongoDB:The Definitive Guide 2nd笔记之查看数据库大小
- django学习笔记---第五章:模型
- The Definitive Guide to symfony
- Inside the C++ Object Model 学习笔记 第五章构造 解构 拷贝语意学
- JS: The Definitive Guide 笔记 - Array
- The.Definitive.Guide.to.Grails下载
- 【Python】学习笔记——-19、访问数据库
- The Definitive Guide to SWT and JFace 翻译序