Django 模型

简介: 连接数据库:from django.shortcuts import render_to_responseimport MySQLdbdef book_list(request):db = MySQLdb.

连接数据库:
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})

setting.py数据库设置:


img_bad1aaf3231d9cfbd55e539819d00db9.png
image.png

img_84e3c99143d26100ed32634f727f3a01.png
image.png

img_8c969193ca381e8baa0b13d6b3c80696.png
image.png

model模型:


img_551a02e706cab65db73b561dba76e999.png
image.png

验证模型语法:


img_2009ec30d6aed086939084a021fae14a.png
image.png

生成数据库:python manage.py sqlall books

模型:
from django.db import models

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 __unicode__(self):**
    **return self.name**

class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()

**def __unicode__(self):**
    **return u'%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 __unicode__(self):**
    **return self.title**

过滤:

Publisher.objects.filter(name='Apress')
[<Publisher: Apress>]
Publisher.objects.filter(country="U.S.A.", state_province="CA")
[<Publisher: Apress>]
获取单个对象:
Publisher.objects.get(name="Apress")
<Publisher: Apress>
捕获异常:
try:
p = Publisher.objects.get(name='Apress')
except Publisher.DoesNotExist:
print "Apress isn't in the database yet."
else:
print "Apress is in the database."
排序:
Publisher.objects.order_by("name")
[<Publisher: Apress>, <Publisher: O'Reilly>]
Publisher.objects.order_by("state_province", "address")
[<Publisher: Apress>, <Publisher: O'Reilly>]
Publisher.objects.order_by("-name")
[<Publisher: O'Reilly>, <Publisher: Apress>]

缺省排序:
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 __unicode__(self):
    return self.name

**class Meta:**
    **ordering = ['name']**

链式:

Publisher.objects.filter(country="U.S.A.").order_by("-name")
[<Publisher: O'Reilly>, <Publisher: Apress>]

列表

Publisher.objects.order_by('name')[0]
<Publisher: Apress>
特定
Publisher.objects.order_by('name')[0:2]
更新:
p = Publisher.objects.get(name='Apress')
p.name = 'Apress Publishing'
p.save()

更新:

Publisher.objects.filter(id=52).update(name='Apress Publishing')

删除:

p = Publisher.objects.get(name="O'Reilly")
p.delete()
Publisher.objects.all()
[<Publisher: Apress Publishing>]

Publisher.objects.filter(country='USA').delete()
Publisher.objects.all().delete()

目录
相关文章
|
5月前
|
存储 安全 网络协议
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
48 0
Python 教程之 Django(9)对模型中的字段进行验证
|
5月前
|
API 数据库 Python
Python 教程之 Django(8)在 Django 管理界面中渲染模型
Python 教程之 Django(8)在 Django 管理界面中渲染模型
43 0
Python 教程之 Django(8)在 Django 管理界面中渲染模型
|
5月前
|
SQL 数据库 索引
Django MTV - 模型层 - (专题)知识要点与实战案例
Django MTV - 模型层 - (专题)知识要点与实战案例
61 0
|
5月前
|
SQL 存储 API
Python 教程之 Django(7)Django 模型
Python 教程之 Django(7)Django 模型
76 1
Python 教程之 Django(7)Django 模型
|
4月前
|
关系型数据库 MySQL 数据库
数据迁移脚本优化过程:从 MySQL 到 Django 模型表
在大规模的数据迁移过程中,性能问题往往是开发者面临的主要挑战之一。本文将分析一个数据迁移脚本的优化过程,展示如何从 MySQL 数据库迁移数据到 Django 模型表,并探讨优化前后的性能差异。
|
2月前
|
机器学习/深度学习 前端开发 数据挖掘
基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型
本文介绍了一个基于Python Django框架开发的房价数据分析平台,该平台集成了多种机器学习模型,包括线性回归、SVM、GBDT和BP神经网络,用于房价预测和市场分析,同时提供了前端大屏展示和后台数据管理功能。
|
2月前
|
存储 数据库 开发者
Django Web架构:全面掌握Django模型字段(下)
Django Web架构:全面掌握Django模型字段(下)
50 2
|
2月前
|
API 数据库 开发者
【独家揭秘】Django ORM高手秘籍:如何玩转数据模型与数据库交互的艺术?
【8月更文挑战第31天】本文通过具体示例详细介绍了Django ORM的使用方法,包括数据模型设计与数据库操作的最佳实践。从创建应用和定义模型开始,逐步演示了查询、创建、更新和删除数据的全过程,并展示了关联查询与过滤的技巧,帮助开发者更高效地利用Django ORM构建和维护Web应用。通过这些基础概念和实践技巧,读者可以更好地掌握Django ORM,提升开发效率。
23 0
|
2月前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
2月前
|
SQL 关系型数据库 MySQL
如何创建 Django 模型
如何创建 Django 模型
19 0