The brain is like a muscle. When it is in use we feel very good. Understanding is joyous.
当我们在开发一个网站的时候,我们往往需要对数据表中的数据进行增删改查。例如在电商网中,每一个商家对商品的上架和下架以及商品信息的编辑都是需要对数据表进行操作的。
使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 ORM的由来 字母‘O’起源于“对象”(Object),'R'代表“关系”(Relational)。 几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业
大致了解我们要完成的项目之后, 我们要进行项目的开发. 我们并不是直接讲解 Django 框架, 而是通过项目驱动的方式, 一步步掌握 Django 框架的基本使用.
举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职,通过部门之间的配合来完成工作,这些部门就形成了一个公司的组织架构。从某种意义上来说,公司就是一种框架。那么对应到软件设计上来说,软件框架是由其中的各个模块组成的,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发。
模型是数据唯一而且准确的信息来源。它包含正在储存的数据的重要字段和行为。一般来说,每一个模型都映射一个数据库表。
首先,我们需要在计算机上有一个专用目录来存储代码。 它可以放置在任何地方,但为了方便起见,如果您使用的是Mac,我们可以将其放在“桌面”文件夹中。 位置真的没关系; 它只需要易于访问。
该文介绍了如何利用Python的requests库发起一个HTTP GET请求。首先介绍了HTTP GET请求的基本概念和requests库的基本用法,然后通过实例演示了如何在Python中使用requests库向一个URL发送HTTP GET请求,并解析返回的响应内容。最后,文章总结了requests库的常见用法和注意事项,并给出了一些示例代码。
一个Django模块是内置的功能,Django使用创建表,他们的田地,和各种约束。简而言之,Django Models是与Django一起使用的SQL数据库。SQL(结构化查询语言)很复杂,涉及许多不同的查询,用于创建,删除,更新或与数据库有关的任何其他内容。Django模型简化了任务并将表组织到模型中。通常,每个模型都映射到单个数据库表。 本文围绕如何使用Django模型方便地将数据存储在数据库中展开。此外,我们可以使用Django的管理面板来创建,更新,删除或检索模型的字段以及各种类似的操作。Django模型提供了简单性,一致性,版本控制和高级元数据处理。模型的基础包括–
本文只是将学习过程中需要深刻记忆,在工作中常用的一些命令或者知识点进行一个罗列并阐释,不会全面的将所有内容进行讲解。大家可以在了解了Django框架和DRF框架之后再来看这篇文章。否则会有点不知所云。
Django 中模型是真实数据的简单明确的描述,它包含了储存的数据所必要的字段和行为,在创建模型前需要先配置好数据库。 Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle等,Django 为这些数据库提供了统一的调用 API。 我们可以根据自己业务需求选择不同的数据库。
2. 在Django项目的__init__.py文件中写如下代码,告诉Django使用pymysql模块连接MySQL数据库:
我们假设你已经 安装了 Django 。你可以运行以下命令来验证是否已经安装了 Django 和运行着的版本号:
目录[-] 本教程继续Part1。我们将设置数据库,创建您的第一个模型,并快速介绍Django的自动生成的管理网站。 数据库设置 现在,编辑mysite/settings.py。它是一个用模块级别变量表示Django配置的普通Python模块。 Django的默认数据库是SQLite。如果你是数据库初学者,或者你只是想要试用一下Django,SQLite是最简单的选择。 SQLite包含在Python中,所以你不需要另外安装其他任何东西。当然在你开始第一个真正的项目时,你可能想使用一个更健壮的数据库比如
在上一个章节中,我们提到了Django是基于MVC架构的Web框架,MVC架构追求的是“模型”和“视图”的解耦合。所谓“模型”说得更直白一些就是数据(的表示),所以通常也被称作“数据模型”。在实际的项目中,数据模型通常通过数据库实现持久化操作,而关系型数据库在过去和当下都是持久化的首选方案,下面我们以MySQL为例来说明如何使用关系型数据库来实现持久化操作。
# 基本查询 print(BookInfo.objects.all()) print(BookInfo.objects.get(btitle='雪山飞狐').id) print(BookInfo.objects.get(id=3)) print(BookInfo.objects.get(pk=3)) # 将ID=3的排除,显示其他的 print(BookInfo.objects.exclude(id=3)) print(111111111) try: print(BookInfo.objects.get(id=12)) # except Exception as e:
我们如果是想在文件中直接运行,进行数据库的查询操作,可以按上面的步骤进行设置。并且在定义模型类的时候重写str方法(操作如下)。然后就可以进行查询了。
ORM,全拼Object-Relation Mapping,中文意为对象-关系映射,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射ORM系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。O/R中字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。目前流行的ORM产品如Java的Hibernate,.Net的EntityFormerWork等。
学过orm系统自然之道模型的重要性,很多web站点都需要与数据库交互,这个时候模型的设计就显得尤为重要,一个好的模型会使得项目方便管理并且易于维护,比如我们学过的flask,里面的sqlalchemy就是这样一个优秀的模块,通过它可以快速和数据库建立通道,从而使得web编程更为高效,本文主要讲解django的模型。
该文档详细描述模型 的API。它建立在模型 和执行查询 的资料之上, 所以在阅读这篇文档之前,你可能会想要先阅读并理解那两篇文档。
在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。
比如一个登陆网页(也就是视图),点击登陆的时候,将账号和密码发送到MVC框架中的控制器(Controller),我们从控制器中进行处理,需要去查询数据库,但是这里不会直接去操作数据库,我们通过Model去进行操作数据库,回来也一样的。
ps:如果inspectdb后不跟表名,那么就会将该数据库内的所有表反向解析成类(python语句)
让我们开始Django文档教程中的投票案例吧。 可以在https://docs.djangoproject.com/zh-hans/4.2/intro/tutorial01/ 查看原教程。
(目前个人认为,Django 还是应该使用 Django1.11版本,稳定长期支持到2020年,兼容性也好。)
自增的整型字段,必填参数primary_key=True,则成为数据库的主键,无该字段时,django会自动创建主键id字段。
打开cmd,输入:pip install Django==1.11.4,然后回车
reverse反解析 使用reverse函数,可以根据路由名称,返回具体的路径,如: from django.urls import reverse # 注意导包路径
当我们的程序涉及到数据库相关操作时,我们一般都会这么做: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='website', passwd='1234', host='localhost') cursor = db.cursor() cursor.execut
要求 修改数据库 Django shell 数据级联(一对多) 元信息 定义字段 模型过滤 创建对象4种方式 查询集 过滤器 获取单个对象 字段查询 时间 聚合函数 跨关系查询 F对象 Q对象 学习课程 1.修改数据库 ① 在settings中的DATABASES中进行修改 ‘ENGINE’: ‘django.db.backends.mysql’, ’NAME‘ : 数据库名字 ’USER‘: 用户名字 ’PASSWORD‘:密码 ’HOST‘: 主机 ’PORT‘: 端口号 注意:引号加不加“”都
AutoField:int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。
如果这是您第一次使用 Django,那么您必须进行一些初始设置。也就是说,您需要自动生成一些建立 Django 项目的代码——Django 实例的设置集合,包括数据库配置、特定于 Django 的选项和特定于应用程序的设置。 从命令行,cd 到您想存储代码的目录,然后运行以下命令:
Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性。而可用的选项大致包含以下几类
第一步 入门 检查版本 python -m django --version 创建第一个项目 django-admin startproject mysite 运行 python manage.py runserver 更改端口 python manage.py runserver 8080 更改IP python manage.py runserver 0:8000 1.创建app 创建投票应用 python manage.py startapp polls polls/views.py from dj
每个字段有一些特有的参数,例如,CharField(和它的派生类)需要max_length 参数来指定 VARCHAR 数据库字段的大小
M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作
这篇主题描述Django 对多个数据库的支持。大部分Django 文档假设你只和一个数据库打交道。如果你想与多个数据库打交道,你将需要一些额外的步骤。
django-guardian是为Django提供额外的基于对象权限的身份验证后端。
创建名为book的app,在book下的models.py中创建模型:
Django是一个高级的Python Web框架,它支持快速开发和简洁实用的设计。这篇文章是看了Django官方文档并进行练习之后总结的笔记,主要总结入门需要了解的几个知识点:
文件里面配置了 DJANGO_SETTINGS_MODULE,也就是 设置(setting.py) 的路径
人们使用不同类型的设备连接到互联网并浏览网页。因此,需要从各种位置访问应用程序。对于传统网站,具有响应式UI通常就足够了,但更复杂的应用程序通常需要使用其他技术和体系结构。其中包括具有单独的REST后端和前端应用程序,可以实现为客户端Web应用程序,Progressive Web Apps(PWA)或本机移动应用程序。
说明:runserver是一个纯python编写的轻量级服务器,仅在开发阶段使用,后期部署上线会使用wsgi方式启动工程
在此之前我们完成了 django 博客首页视图的编写,我们希望首页展示发布的博客文章列表,但是它却抱怨:暂时还没有发布的文章!如它所言,我们确实还没有发布任何文章,本节我们将使用 django 自带的 admin 后台来发布我们的博客文章。
领取专属 10元无门槛券
手把手带您无忧上云