博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
The Definitive Guide To Django 2 学习笔记(九) 第五章 模型 (一)数据库访问
阅读量:5018 次
发布时间:2019-06-12

本文共 1276 字,大约阅读时间需要 4 分钟。

以MySql数据库为例,先到处下载MysqlConnector for python的连接器。

 

from django.shortcuts import render_to_responseimport mysql.connectordef 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_responsefrom mysite.books.models import Bookdef 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:主机名

 

转载于:https://www.cnblogs.com/kfx2007/p/3435730.html

你可能感兴趣的文章
ABP中的拦截器之EntityHistoryInterceptor
查看>>
【oracle】oracle数据库建立序列、使用序列实现主键自增
查看>>
使用SQLiteDatabase操作SQLite数据库第二种方法
查看>>
vue,一路走来(12)--父与子之间传参
查看>>
css3 选择器的比较(一) -- 以字符串开头
查看>>
实现交换两个变量值的第二种方法
查看>>
英语单词学习备忘转载
查看>>
【C++】单例模式详解
查看>>
文本框根据关键字异步搜索内容
查看>>
SQLServer 基本语法
查看>>
Python入门基础知识(1) :locals() 和globals()
查看>>
python模块之multiprocessing模块, threading模块, concurrent.futures模块
查看>>
css-文字和图片在容器内垂直居中的简单方法
查看>>
杭电3784(继续xxx定律)
查看>>
PHP 的 HMAC_SHA1算法 实现
查看>>
深入理解javascript原型和闭包_____全部
查看>>
2016年中国的SaaS服务商企业研究
查看>>
HTML5:离线存储(缓存机制)-IndexDB
查看>>
9-5
查看>>
Laxcus大数据管理系统2.0(5)- 第二章 数据组织
查看>>