1.设置settings.py
DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'django'
DATABASE_USER = 'root'
DATABASE_PASSWORD = '123456'
DATABASE_HOST = 'localhost'
DATABASE_PORT = ''
要注意的是无论选择使用哪个数据库服务器,都必须下载和安装对应的数据库适配器。
Mysql为:http://www.djangoproject.com/r/python-mysql/
输入完设置后,测试一下配置情况。首先,转到mysite 项目目录,运行 python manage.py shell 命令。输入下面这些命令来测试你的数据库配置:
>>> from django.db import connection
>>> cursor = connection.cursor()
如果没有显示什么错误信息,那么你的数据库配置是正确的。
2. 执行下面的命令来创建一个新app叫做books:
python manage.py startapp books
3.添加模型,打开 models.py 并输入下面的内容
from django.db import models
# Create your models here.
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
class Author(models.Model):
salutation = models.CharField(max_length=10)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
headshot = models.ImageField(upload_to='tmp')
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
4.模型安装
再次编辑 settings.py 文件, 找到 INSTALLED_APPS 设置。
INSTALLED_APPS = (
# 'django.contrib.auth',
# 'django.contrib.contenttypes',
# 'django.contrib.sessions',
# 'django.contrib.sites',
'mysite.books'
)
现在我们可以创建数据库表了。首先,用下面的命令对校验模型的有效性:
python manage.py validate
按提示信息安装相应模块
books.author: “headshot”: To use ImageFields, you need to install the Python Ima
ging Library. Get it at http://www.pythonware.com/products/pil/ .
模型确认没问题了,运行下面的命令来生成 CREATE TABLE 语句:
python manage.py sqlall books
运行命令的结果是这样的:
BEGIN;
CREATE TABLE "books_publisher" (
"id" serial NOT NULL PRIMARY KEY,
"name" varchar(30) NOT NULL,
"address" varchar(50) NOT NULL,
"city" varchar(60) NOT NULL,
"state_province" varchar(30) NOT NULL,
"country" varchar(50) NOT NULL,
"website" varchar(200) NOT NULL
);
CREATE TABLE "books_book" (
"id" serial NOT NULL PRIMARY KEY,
"title" varchar(100) NOT NULL,
"publisher_id" integer NOT NULL REFERENCES "books_publisher" ("id"),
"publication_date" date NOT NULL
);
CREATE TABLE "books_author" (
"id" serial NOT NULL PRIMARY KEY,
"salutation" varchar(10) NOT NULL,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(40) NOT NULL,
"email" varchar(75) NOT NULL,
"headshot" varchar(100) NOT NULL
);
CREATE TABLE "books_book_authors" (
"id" serial NOT NULL PRIMARY KEY,
"book_id" integer NOT NULL REFERENCES "books_book" ("id"),
"author_id" integer NOT NULL REFERENCES "books_author" ("id"),
UNIQUE ("book_id", "author_id")
);
CREATE INDEX books_book_publisher_id ON "books_book" ("publisher_id");
COMMIT;
sqlall 命令并没有在数据库中真正创建数据表,只是把SQL语句段打印出来。你可以把这些语句段拷贝到你的SQL客户端去执行它。当然,Django提供了更简单的方法来执行这些SQL语句。运行 syncdb 命令:
python manage.py syncdb
你将会看到这样的内容:
Creating table books_publisher
Creating table books_book
Creating table books_author
Installing index for books.Book model
syncdb 命令是同步你的模型到数据库的一个简单方法。它会根据 INSTALLED_APPS 里设置的app来检查数据库,如果表不存在,它就会创建它。需要注意的是, syncdb 并 不能同步模型的修改到数据库。如果你修改了模型,然后你想更新数据库, syncdb 是帮不了你的。(稍后我们再讲这些。)
如果你再次运行 python manage.py syncdb ,什么也没发生,因为你没有添加新的模型或者添加新的app。所以,运行 python manage.py syncdb 总是安全的,它不会把事情搞砸。
如果你有兴趣,花点时间用你的SQL客户端登录进数据库服务器看看刚才Django创建的数据表。 Django带有一个命令行工具, python manage.py dbshell 。
5.基本数据访问
运行 python manage.py shell 并输入下面的内容试试看:
>>> from books.models import Publisher
>>> p1 = Publisher(name='Addison-Wesley', address='75 Arlington Street',
... city='Boston', state_province='MA', country='U.S.A.',
... website='http://www.apress.com/')
>>> p1.save()
>>> p2 = Publisher(name="O'Reilly", address='10 Fawcett St.',
... city='Cambridge', state_province='MA', country='U.S.A.',
... website='http://www.oreilly.com/')
>>> p2.save()
>>> publisher_list = Publisher.objects.all()
>>> publisher_list
[<publisher : Publisher object>, </publisher><publisher : Publisher object>]
</publisher>
6.添加模块的字符串表现
添加一个方法 __str__() 到 Publisher 对象。 __str__() 方法告诉Python要怎样把对象当作字符串来使用。请看下面:
from django.db import models
# Create your models here.
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
def __str__(self):
return self.name
class Author(models.Model):
salutation = models.CharField(max_length=10)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
headshot = models.ImageField(upload_to='/tmp')
def __str__(self):
return '%s %s' % (self.first_name, self.last_name)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
def __str__(self):
return self.title
请确保你的每一个模型里都包含 __str__() 方法,这不只是为了交互时方便,也是因为 Django会在其他一些地方用 __str__() 来显示对象。
7.详细数据库操作参照http://djangobook.py3k.cn/chapter05/
分享到:
相关推荐
本笔记将深入探讨Django的基础概念、核心功能以及实际应用。 1. **Django简介**: Django是由两位美国开发者在2005年创建的开源项目,它遵循MVC(模型-视图-控制器)设计模式,但更倾向于MTV(模型-模板-视图)...
2022 B站最详细django3教程(django从入门到实践) 很适合刚学习django的同学 通过一个案例,把django的基本的templates,models,urls,from,modelfrom讲的清清楚楚,甚至还给了我们应用场景。
学习django框架的笔记,超详细
在看django book 2.0和django官方文档的过程中自己做的django笔记,
千锋Django笔记可能涵盖了从安装配置到项目实战的全过程,包括模型定义、视图处理、模板渲染、表单处理、用户认证与授权等重要知识点。思维导图则以可视化的方式,帮助记忆和理解Django的架构和各组件之间的关系,使...
【千锋Django笔记】是针对Python Web开发框架Django的一份详细学习资料,这份笔记可能包含了从基础知识到高级特性的全面讲解。Django是一个高效、成熟且功能强大的开源Web框架,它遵循“DRY(Don't Repeat Yourself...
4. **数据类型**:Django ORM(对象关系映射)提供了多种内置字段类型,如CharField、IntegerField、DateTimeField等,用于定义模型中的属性。了解这些字段类型及其用法,能帮助我们更好地设计数据库结构。 5. **...
【千锋教育Django笔记】是一份专门为初学者设计的学习资料,它涵盖了Django框架的基础知识和实战技巧。Django是Python编程语言中一个强大的、免费的开源Web应用框架,它遵循模型-模板-视图(MTV)架构模式,旨在简化...
**Django学习笔记** Django,作为Python领域最流行的Web框架之一,因其高效、安全且易于上手的特点,被广大开发者所青睐。本学习笔记旨在深入解析Django的核心概念、功能以及实际应用,帮助读者从零开始掌握这个...
### Django框架学习笔记 #### 软件框架概述 软件框架是软件开发中的一种结构化设计,它提供了一种组织代码、数据和其他资源的方式,使得开发者可以更容易地构建应用程序。框架通常包含了一些预设的解决方案,这些...
在本压缩包中,"Django学习笔记.doc文件.rar"包含了一份详尽的Django框架学习资料,由以下几个部分组成: 1. **用户身份验证.doc**:这部分讲述了Django内置的身份验证系统,包括如何创建用户账户,登录和登出功能...
Django笔记(自用)
Django相关笔记记录了Django基础,可以帮助同行快速上手。
### Django学习笔记知识点详解 #### 一、Django框架安装及环境配置 **知识点1:安装Django** - **背景介绍:** 在Python环境中安装Django框架是开发基于Python的Web应用程序的第一步。 - **安装步骤:** - **...
个人总结的Django学习笔记, 持续更新中。 目前只是总结了django的一部分学习逻辑。
【标题】:“django框架学习笔记” 【描述】:“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的网站。Django强调代码...
django教程:基本操作笔记整理.png