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()

目录
相关文章
|
2月前
|
SQL 存储 数据库
Django模型查询与性能调优:告别N+1问题
本文详解Django数据库查询基础与优化技巧,涵盖QuerySet使用、关联查询(一对多/多对多)、N+1查询问题及解决方案(select_related、prefetch_related)、高级查询方法及项目实战中的数据权限控制实现。
126 0
|
3月前
|
存储 数据库 Python
Django模型关系:从一对多到多对多全解析
本文详解Django模型关系:一对多(ForeignKey)及多对多(ManyToManyField)关系的定义、操作与优化技巧。同时探讨外键约束的使用场景与权衡策略。
138 0
|
3月前
|
存储 关系型数据库 MySQL
Django模型开发:模型字段、元数据与继承全方位讲解
本文将全面介绍 Django 模型的关键知识点,包括模型字段类型、映射、常用配置选项以及模型继承等高级特性,帮助开发者快速掌握模型设计与使用技巧。
80 0
|
关系型数据库 MySQL 数据库
数据迁移脚本优化过程:从 MySQL 到 Django 模型表
在大规模的数据迁移过程中,性能问题往往是开发者面临的主要挑战之一。本文将分析一个数据迁移脚本的优化过程,展示如何从 MySQL 数据库迁移数据到 Django 模型表,并探讨优化前后的性能差异。
|
12月前
|
机器学习/深度学习 前端开发 网络架构
Django如何调用机器学习模型进行预测
Django如何调用机器学习模型进行预测
239 5
|
12月前
|
机器学习/深度学习 监控 数据挖掘
基于Django和百度飞桨模型的情感识别Web系统
基于Django和百度飞桨模型的情感识别Web系统
199 5
|
12月前
|
机器学习/深度学习 算法 搜索推荐
django调用矩阵分解推荐算法模型做推荐系统
django调用矩阵分解推荐算法模型做推荐系统
163 4
|
12月前
|
存储 开发框架 JSON
【查漏补缺】Django模型字段类型及其应用
【查漏补缺】Django模型字段类型及其应用
120 0
|
机器学习/深度学习 前端开发 数据挖掘
基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型
本文介绍了一个基于Python Django框架开发的房价数据分析平台,该平台集成了多种机器学习模型,包括线性回归、SVM、GBDT和BP神经网络,用于房价预测和市场分析,同时提供了前端大屏展示和后台数据管理功能。
317 9
|
存储 数据库 开发者
Django Web架构:全面掌握Django模型字段(下)
Django Web架构:全面掌握Django模型字段(下)
193 2