首页
学习
活动
专区
圈层
工具
发布

Django学习之旅(六)

本文是 Django 学习之旅的完结篇,主要是讲述 model 层。model 层是与数据库打交道的,其中包括 怎么连接数据库、怎么对数据库进行增删改查等。...1 新建数据库 Django 支持的数据库有 PostgreSQL 、MySQL、SQLite等,基本上市面上的有的数据库都支持。我是使用 PyCharm 作为开发工具。...PyCharm 在新建项目的时候,会自动生成一个 SQLite 数据库。如果你使用 MySQL 数据库,你需要自行创建数据库。...每个字段通过 Field 类的一个实例表示 —— 例如字符字段 CharField 和日期字段 DateTimeField 。这种方法告诉 Django,每个字段中保存着什么类型的数据。...在数据库也会发现我们刚才新建的表 ? 5 插入与查询数据 Author 和 Book 表已经新建成功了。你可能有这样的疑惑。我要怎么往该表插入数据呢?听我慢慢道来。

2.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    『Django』模型入门教程-操作MySQL

    日常开发中大多数时候都在与数据库打交道。Django 为我们提供了一种更简单的操作数据库的方式。 在 Django 中,模型(Model)是用来定义数据库结构的类。...数据库和面向对象的对应关系: 数据表 - 类 数据行 - 对象 字段 - 属性 配置MySQL数据库 在 Django 中默认使用的数据库是 SQLite,而在我们这边很多中小企业喜欢用 MySQL,所以使用...(BASE_DIR, 'db.sqlite3') } } 我们要用 MySQL ,就要改成这样: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql...要使用的数据库引擎常用的引擎包括: 'django.db.backends.postgresql'(PostgreSQL) 'django.db.backends.mysql'(MySQL) 'django.db.backends.sqlite3...'(SQLite) 'django.db.backends.oracle'(Oracle) NAME:指定要连接的数据库的名称。

    91610

    【云+社区年度正文】Django从入门到精通No.3---与数据库交互

    二、与数据库建立连接 前面我们讲过django的模型和关联关系后,我们来试着操纵下数据库,首先我们需要在django中配置数据库,进入settings.py文件中,如下: 1.jpg 这里我们可以设置四种数据库类型...,如下: 'django.db.backends.postgresql' 'django.db.backends.mysql' 'django.db.backends.sqlite3' 'django.db.backends.oracle...四、迁移信息同步到数据库 由于我们没指定,因此会保存到默认的sqlite3数据库中,如果想把它保存到MySQL数据库中,很简单,如下: python manage.py migrate --database...接下来我们将这些信息保存到数据库中,如图: 3.jpg 这样就把我们刚刚配置好的关联表的信息输入到了sqlite3数据库中去了,这个时候我们可以对模型中的类进行操作了。...如图: 12.jpg 八、总结 以上就是django操作数据库的最常用到的函数以及功能了,把这些学会了基本上你就能开发一个简易的小博客网站了。

    1.5K30

    Django 1.10中文文档-第一个应用Part2-模型和管理站点

    它是一个用模块级别变量表示Django配置的普通Python模块。 Django的默认数据库是SQLite。如果你是数据库初学者,或者你只是想要试用一下Django,SQLite是最简单的选择。...: ENGINE-支持'django.db.backends.sqlite3', 'django.db.backends.postgresql_psycopg2', 'django.db.backends.mysql...有关更多详细信息,请参阅DATABASES的参考文档。 注:如果你使用PostgreSQL或者MySQL,确保到此你已经建立好一个数据库。如果你使用SQLite,你不需要事先创建任何东西。...如果你有兴趣,可以运行你的数据库的命令行客户端并输入dt (PostgreSQL), SHOW TABLES; (MySQL)或.schema (SQLite)来显示Django创建的表。...(MySQL)、 serial (PostgreSQL)或integer primary key autoincrement (SQLite) 。

    3.7K60

    用人话讲解django之数据的增删改

    sql的操作语句不复杂,可以使用django 的 ORM 语句,它是通过一些封装,根据 ORM 的语法可以对数据库增删改查,用一同一个 ORM 语句可以支持对 mysql、sqlite、PostgreSQL...设置最大长度,verbose_name在django后台显示该英文字段的中文意思 name = models.CharField(max_length=30, verbose_name="学生姓名...= models.DateTimeField(auto_now_add=True, verbose_name="创建时间") updated_at = models.DateTimeField...是对外键取别名,常用在django的orm反向查询中 cls = models.ForeignKey('Class', related_name="stu_cls", null=True, on_delete...name="1903") # stu_info左边的key要和Student模型字段对应上,因为cls是外键,所以要对应一个班级的实例 stu_info = { "name

    73330

    完整的 Django 零基础教程|初学者指南 - 第 3 部分 转自:维托尔·弗雷塔斯

    实体是我们将要创建的模型,它与我们的 Django 应用程序将处理的数据密切相关。 为了能够实现上一节中描述的用例,我们至少需要实现以下模型:Board 、Topic 、Post 和User 。 ?...我们将通过实现反向关系来实现这一点,其中 Django 将自动在数据库中执行查询以返回属于特定主题的所有帖子 的列表。 好的,现在足够的 UML!...fields CharField、DateTimeField等都是django.db.models.Field 的 子类,它们包含在 Django 核心中——随时可以使用。...所有的工作都将使用 Django ORM 完成,它是一个与数据库通信的抽象层。...SQLite 无法与 MySQL、PostgreSQL 或 Oracle 等数据库进行比较。大容量网站、写入密集型应用程序、非常大的数据集、高并发性,这些情况最终会导致使用 SQLite 出现问题。

    3.3K40

    Django设计模型1.2

    项进行数据库设置 django支持的数据库包括:sqlite、mysql等主流数据库 Django默认使用SQLite数据库 创建应用 在一个项目中可以创建一到多个应用,每个应用进行一种业务处理 创建应用的命令...: python manage.py startapp booktest 应用的目录结构如下图 定义模型类 有一个数据表,就有一个模型类与之对应 打开models.py文件,定义模型类 引入包from...django.db import models 模型类继承自models.Model类 说明:不需要定义主键列,在生成时会自动添加,并且值为自动增长 当输出对象时,会调用对象的str方法 from django.db...class BookInfo(models.Model): btitle = models.CharField(max_length=20) bpub_date = models.DateTimeField...django.utils import timezone from datetime import * 查询所有图书信息: BookInfo.objects.all() 新建图书信息: b = BookInfo

    86910

    小白学Django第三天| 一文带你快速理解模型Model

    的保留关键字 不允许使用mysql的保留关键字 不允许使用连续的下划线,因为Django的查询语法就是连续的下划线 字段类型 提示:Django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型...是相互排斥的,组合将会发生错误 TimeField:时间,参数同DateField DateTimeField:日期时间,参数同DateField FileField:上传文件字段 ImageField...生成了迁移文件之后,我们还需要执行迁移文件,这样才会和我们的数据库映射起来(Django默认配置sqlite数据库,所以我们暂时使用sqlite,之后我们会配置成mysql) 执行迁移文件生成表: python...执行完成后,我们会发现我们的项目目录下产生了一个db.sqlite3的文件,这个文件就是sqlite数据库文件,我们通过命令行把这个文件打开 ? 通过查看表的列属性 ?...大家可以看到上图,我们在之前的模型类BookInfo基础上,加了一个People模型类,因为在一本书中可能会出现很多人物。

    1.4K11

    Django入门教程

    一、下载与配置 1、安装python python3详细安装教程_超级小的大西瓜的博客-CSDN博客_python3安装 2、安装Django pip install -i https://pypi.tuna.tsinghua.edu.cn.../simple Django 3、安装MySQL mysql安装教程【安装版】_超级小的大西瓜的博客-CSDN博客_mysql安装教程 二、创建 1、创建项目 django-admin startproject...'DIRS': [os.path.join(BASE_DIR,'templates')], #模板储存位置(表示存放在与manage.py同级templates目录下,可以自己修改需要的位置...文件) STATIC_URL = '/static/' #静态文件的路由 STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),) #静态文件位置(表示存放在与...注意:需要先创建需要连接的数据 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql',

    76420

    1.4 Django基础篇--数据库模型设计

    author表示文章作者,大家会发现我们使用了外键,这是因为User是Django内置的数据模型,从django.contrib.auth.models中导入的,专门用来负责用户信息的处理,本质上User...1.4.3 数据库模型迁移 打开CoolBlog工程CoolBlog目录下的settings.py文件,其中Django已经默认配置好了sqlite3数据库。 ?...但是这次我们不用默认的sqlite3数据库,在稍微大型的项目中,Mysql才是标配。首先使用Navicat for MySQL打开MySQL,新建一个coolblog数据库。 ?...如果不想用MySQL,可以依然保持原样。配置完成后,开始进行通过Django提供的命令进行数据库迁移。...由于我们使用MySQL作为数据库迁移,需要安装python版本MySQL引擎,Django默认使用MySQLdb。

    1.9K30

    Django 2.0 新特性 转

    2.admin后台对移动端更加友好 Django最受大家欢迎的admin后台,具有响应式特性,支持主流的移动设备。 3.Window 表达式 新的Window表达式允许为查询集添加一个OVER从句。...4.小特性 django.contrib.admin后台 新的ModelAdmin.autocomplete_fields属性和ModelAdmin.get_autocomplete_fields()方法现在可以在外键和多对多字段上使用...django.contrib.gis地理框架 为AsGeoJSON、GeoHash和GeoHash方法,isvalid和distance查询增加MySQL支持; 添加Azimuth和LineLocatePoint...QuerySet.reverse()和last()不能用于切片后的查询集 对切片后的查询集使用反转和获取最近对象的操作将弹出异常,如下所示: >>> Model.objects.all()[:2].reverse...SQLite现在支持外键约束 另外,Django2.0还废弃和移除了一些方法和属性。 总结: 好像也没多大变化,不是重度使用者,基本感受不出变化来,该怎么用还是怎么用,^-^!

    3.4K20

    Django的聚合查询与原生操作

    聚合查询 ​ 聚合查询指的是对一个数据表中的一个字段的数据进行部分或者全部进行统计查询,例如查某个表中的平均价格、查询总价格。 反正尽量用ORM吧,这只是一种暂缓之计!...聚合查询可以分为 整表聚合 分组聚合 整表聚合 ​ 不带分组的聚合查询是指将全部的数据进行集中统计查询。...通过先用查询结果Mymodels.objects.values查找要分组聚合的列 from django.db.models import * from apps.monitor.models import...QuerySet 原生数据库操作 django也可以支持直接使用SQL语句进行查询数据库 查询:使用MyModels.objects.raw()进行数据库查询操作 语法:MyModels.objects.raw...-查询/更新/删除 导入cursor包 from django.db import connection 用创建的cursor类的构造函数创建cursor对象,为了能够保证在出现异常的时候能够释放cursor

    1.3K20

    Django model 层之Models与Mysql数据库小结

    Django model 层之Models与Mysql数据库小结 by:授客 QQ:1033553122 测试环境: Python版本:python-3.4.0.amd64 下载地址:https://www.python.org...可选值: 'django.db.backends.postgresql' 'django.db.backends.mysql' 'django.db.backends.sqlite3' 'django.db.backends.oracle...如果使用SQLite,数据库文件将存放在电脑上,这种情况下,NAME应该为绝对路径,包含数据库文件的文件名。默认值如下,把数据库文件存放在项目根目录下。...DateTimeField字段的值,如果要保存为当前时间,可以通过timezone.now()快速获取当前时间进行赋值 >>> from django.utils import timezone >>>...如果修改某个已存在对象,主键列的值,并保存该对象,会在旧对象的基础上,重新构建一个对象。

    3.5K20

    MYSQL 中的查询技巧 与 MYSQL 8 并行查询

    最近公司的系统一点点的开始了拆分,从ORACLE 转移到 MYSQL 中,部分程序员的想法在使用MYSQL中还是没有转变过来,直接将ORALCE中的查询语句直接搬到了MYSQL。...使用MYSQL 重要的两点,1 逻辑上移,数据库不在是承担你逻辑的第一选择,程序的比重将变得更重要 2 数据库容器化,数据库将变得不再那么重要,而是仅仅是承载数据的地方,或者甚至高级的设计,数据库将变得可有可无...这就直接抛出一个问题,就是MYSQL的查询技巧还重要吗?当然如果你还要用MYSQL 来进行数据库的提取和查询,那就必须重视MYSQL的查询技巧。...下图是以 mysql 8.015 这个版本作为语句执行的基础 其实两条语句查询的结果是一样的,仅仅是写法不一样,给出的执行计划就是不一样的 以目前最新版本的MYSQL来说,从上面的例子里面,还是要鼓励直接查询...最后,我们看看MYSQL 8.0的并行查询,并行查询,其实在 PG, SQL SERVER , ORACLE 中都有,但形式不同,MYSQL 8 之前是没有并行查询这个概念的,MYSQL 8 引入了并行查询

    10K60
    领券