gpt4 book ai didi

在Django的视图中使用数据库查询的方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章在Django的视图中使用数据库查询的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在视图中也有笨方法可以从数据库中获取数据。 很简单: 用现有的任何 Python 类库执行一条 SQL 查询并对结果进行一些处理.

在本例的视图中,我们使用了 MySQLdb 类库(可以从 http://www.djangoproject.com/r/python-mysql/ 获得)来连接 MySQL 数据库,取回一些记录,将它们提供给模板以显示一个网页:

?
1
2
3
4
5
6
7
8
9
10
from django.shortcuts import render_to_response
import MySQLdb
 
def book_list(request):
   db = MySQLdb.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})

这个方法可用,但很快一些问题将出现在你面前:

    我们将数据库连接参数硬行编码于代码之中。 理想情况下,这些参数应当保存在 Django 配置中.

    我们不得不重复同样的代码: 创建数据库连接、创建数据库游标、执行某个语句、然后关闭数据库。 理想情况下,我们所需要应该只是指定所需的结果.

    它把我们栓死在 MySQL 之上。 如果过段时间,我们要从 MySQL 换到 PostgreSQL,就不得不使用不同的数据库适配器(例如 psycopg 而不是 MySQLdb ),改变连接参数,根据 SQL 语句的类型可能还要修改SQL 。 理想情况下,应对所使用的数据库服务器进行抽象,这样一来只在一处修改即可变换数据库服务器。 (如果你正在建立一个开源的Django应用程序来尽可能让更多人使用的话,这个特性是非常适当的。) 。

正如你所期待的,Django数据库层正是致力于解决这些问题。 以下提前揭示了如何使用 Django 数据库 API 重写之前那个视图.

?
1
2
3
4
5
6
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})

我们将在本章稍后的地方解释这段代码。 目前而言,仅需对它有个大致的认识.

最后此篇关于在Django的视图中使用数据库查询的方法的文章就讲到这里了,如果你想了解更多关于在Django的视图中使用数据库查询的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com