zoukankan      html  css  js  c++  java
  • The Definitive Guide To Django 2 学习笔记(九) 第五章 模型 (一)数据库访问

    以MySql数据库为例,先到http://dev.mysql.com/downloads/connector/python/处下载MysqlConnector for python的连接器。

    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:主机名

  • 相关阅读:
    笔记3
    笔记
    指令操作、例子
    python文件操作
    pandas处理excel
    Flask资源
    ImportError: DLL load failed while importing _ssl: 找不到指定的模块。 Failed
    WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
    selenium 安装与 chromedriver安装
    ubuntu 更换清华源
  • 原文地址:https://www.cnblogs.com/kfx2007/p/3435730.html
Copyright © 2011-2022 走看看