首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django—入门

当前主流的开发语言Java、PHP、Python中都有MVC框架。 Web MVC各部分的功能 M全拼为Model,主要封装对数据库层的访问,对数据库的数据进行增、删、改、查操作。...django内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。...1.定义模型模型类定义在models.py文件,继承自models.Model类。   说明:不需要定义主键列,在生成时会自动添加,并且值为自动增长。...迁移由两步完成: 1.生成迁移文件:根据模型类生成创建表的迁移文件。 2.执行迁移:根据第一步生成的迁移文件在数据库创建表。...同时我们发现多了一个id项,这一项是Django框架帮我们自动生成的,在创建表的时候id就会作为对应表的主键列,并且主键自动增长。

1.8K10

Django ORM

无名分组和有名分组反向解析 Django ORM ORM:对象映射关系程序 通过orm将编程语言的对象模型数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了...ORM实操之数据库迁移 ✨我们的模型类需要写在应用下的models.py文件 # SQL原生语句和ROM创建的区别 class User(models.Model): # id...Django所需的依赖表,自动创建的 # 自己创建的表user以'应用名_表名'的形式创建,app01_user ✨✨不指定id字段和主键等,ORM会自动创建id # 如果你不指定主键 那么orm会自动帮你创建一个名为...id,比如author_id,不需要写_id,orm自动补充 ORM自动创建书籍和作者的第三张表,只有多对多关系表被单独创建出来 Django请求生命周期流程图 路由匹配 路由:通俗理解为除去ip...比如下例把blog.urls通过re_path加入到项目urls就不能以结尾,因为这里的blog/并不是完整的url,只是一个开头而已。

4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Django—模型

定义属性 Django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单使用的默认html控件 在管理站点最低限度的验证 django会为表创建自动增长的主键列...,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...参数auto_now_add表示当对象第一次被创建自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false。...通过对象执行关联查询 在定义模型,可以指定三种关联关系,最常用的是一对多关系,本例的"图书-英雄"就为一对多关系。...books = BookInfoManager() 2.在管理器类定义创建对象的方法 对模型类对应的数据表进行操作,推荐将这些操作数据表的方法封装起来,放到模型管理器类

6.1K21

Django学习-第六讲(下):django数据库的ORM操作方法及常用字段

2.很多SQL语句是在业务逻辑拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些SQL语句的修改。 3.写SQL容易忽略web安全问题,给未来造成隐患。SQL注入。...from django.db import models # 创建一个模型,对应数据库的一张表 class Book(models.Model): id = models.AutoField(...创建ORM模型 ORM模型一般都是放在app的models.py文件。每个app都可以拥有自己的模型。...还有一个字段我们没有写,就是主键id,在django,如果一个模型没有定义主键,那么将会自动生成一个自动增长的int类型的主键,并且这个主键的名字就叫做id。 3....映射模型数据库 将ORM模型映射到数据库,总结起来就是以下几步: 1.在settings.py,配置好DATABASES,做好数据库相关的配置。

75020

多年学习django知识经验总结,基础到高手,md共50页. 第(2)期

创建 在django创建子应用模块目录仍然可以通过命令来操作,即: python manage.py startapp 子应用名称 manage.py 为上述创建工程自动生成的管理文件。...views.py 文件用于编写Web应用视图。 3. 注册安装子应用 创建出来的子应用目录文件虽然被放到了工程项目目录,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。...而是定义模型类, 通过模型类和对象完成数据库表的增删改查. ORM框架就是把数据库表的行与相应的对象建立关联, 互相转换.使得数据库的操作面向对象....一本书中可以有多个英雄. - 不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长.根据数据库表的设计 - 在`models.py`定义模型类,继承自`models.Model` - from...模型迁移 (建表) 迁移由两步完成 : - 生成迁移文件:根据模型类生成创建表的语句python manage.py makemigrations - 执行迁移:根据第一步生成的语句在数据库创建

22220

Django MVC概述和开发流程

视图(View) 负责数据的显示和呈现,通常视图是依据模型数据创建的,MVC的一个Model通常为多个View提供服务。...在Django,ORM在开发者和数据库之间建立了一个中间层,把对数据库的CURD转换成了Python对象实体的操作,这样既屏蔽了不同数据库之间的差异,而且又使得开发者可以使用面向对象的特性来操作数据库...在Django中进行数据库开发一般需要三个步骤: 1.在应用的models.py定义模型类 2.迁移 3.通过类和对象完成对数据库的CURD 1.定义模型类 首先添加了一个school_test应用,...为school_test应用设计学校类和学生类 注:不需要定义主键,Django在迁移时会自动生成主键,并且值为自动增长 设计学校类 学校类: 类名:SchoolInfo 学校名:name 学校地点:addr...数据库中表的命名为应用命_模型类名,而且在模型添加了外键则会生成命名为外键模型类名_id的外键字段。

1.7K10

初探Django框架

(默认情况下Django 会自动views.py 传到HTML文件的标签跳转标签, script标签语法进行转义,令其语义失效)。...b.如果涉及到数据调用,那么视图函数调用模型模型数据库查找数据,然后逐级返回。 模型将视图函数所需要的数据返回到视图函数, 然后视图函数再把返回的数据填充到模板中空格,最后返回网页给用户。...Django 模型使用自带的 对象关系映射ORM(Object Relational Mapping )用于实现面向对象编程语言里不同类型系统的数据之间的转换(其实就是数据库系统三级映射模式的外模式/...ORM 在业务逻辑层和数据库层之间充当了桥梁的作用。ORM 是通过使用描述对象数据库之间的映射的元数据,将程序对象自动持久化到数据库。...表名组成结构为:应用名_类名(:TestModel_test)。尽管我们没有在 models 给表设置主键,但是 Django 会自动添加一个 id 作为主键

2K20

关于“Python”的核心知识点整理大全59

只要每个主题都归属于特定用户,我们就能确定数据库每个条 目的所有者。 下面来修改模型Topic,在其中添加一个关联到用户的外键。这样做后,我们必须对数据库 进行迁移。...最简单的办法是,将既有主题都 关联到同一个用户,超级用户。为此,我们需要知道该用户的ID。 下面来查看已创建的所有用户的ID。...注意 你可以重置数据库而不是迁移它,但如果这样做,既有的数据都将丢失。一种不错的做 法是,学习如何在迁移数据库的同时确保用户数据的完整性。...代码 Topic.objects.filter(owner=request.user)让Django只从数据库获取owner属性为当前用户的 Topic对象。...Django的意思是说,创建新主题,你必须指定其owner字段的值。 由于我们可以通过request对象获悉当前用户,因此存在一个修复这种问题的简单方案。

11010

Django 1.10文文档-第一个应用Part4-表单和通用视图

现在,创建一个Django视图来处理提交的数据,在Part3已经创建了一个URLconf ,包含这一行: # polls/urls.py url(r'^(?...它首先从数据库获取selected_choice对象,计算新的投票数值然后将其保写回数据库。如果您的网站的两位用户尝试在完全相同的时间投票,这可能会出错。这被称为竞争条件。...这两个视图分别代表“显示对象列表”和“显示特定类型对象的详细信息页面”的抽象概念。 每个通用视图需要知道它将作用于哪个模型。...这由model 属性提供; DetailView都是从URL捕获名为"pk"的主键值,因此才需要把polls/urls.pyquestion_id改成了pk以使通用视图可以找到主键值。...而对于DetailView,question变量会被自动提供,因为我们使用了Django的模型(Question),Django会智能的选择合适的上下文变量。

2.3K40

Django 3.1 官网学习路线

当您熟悉了基本的请求和响应流后,请阅读本教程的第 2 部分,开始使用数据库。 第二部分 设置数据库创建您的第一个模型,并快速介绍 Django 自动生成的管理网站。...表名是通过结合应用程序的名称(投票)和模型的小写名称——问题和选择——自动生成的。(您可以重写此行为。) 主键(id)会自动添加。(你也可以忽略这个。)...它是为你使用的数据库量身定制的,所以数据库特定的字段类型, auto_increment (MySQL),串行(PostgreSQL),或整数主键 autoincrement (SQLite)会自动为你处理...迁移功能非常强大,它允许您在开发项目随着时间的推移更改模型,而不需要删除数据库或表并创建新表——它专门用于实时升级数据库,而不会丢失数据。...此页面显示数据库的所有问题,并允许您选择一个进行更改。有“What's up?”“我们之前提出的问题是: 这里需要注意的是: 表单是根据问题模型自动生成的。

8.1K10

Django流程_菜鸟裹裹收费标准

注意:Django默认使用Sqlit数据库 在setting.py文件,通过DATABASE选项进行数据库配置 a、配置MySQL python3.x安装的是PyMySQL 在__init...views.py 视图 4、激活应用 在setting.py文件,讲myApp应用加入到INSTALLED-APPS选项 5、定义模型 概述:有一个数据表,就应该对应一个模型 在models.py...,在生成自动添加,并且值为自动增加 6、在数据库中生成数据表 a、生成迁移文件 执行:python manage.py makemigrations 在migrations目录下生成一个迁移文件...,此时数据库还没有生成数据表 b、执行迁移 执行:python manage,py migrate 相当于执行sql语句创建数据表 7、测试数据操作 a、进入到python shell...模型对象.delete() 逻辑删除(isDelete = True) I、关联对象 创建一个学生 stu = Students() stu.sname = “小明” stu.sgender

1.3K30

Python:Django搭建博客

django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 注册应用,当使用pycharm创建时会帮我们自动创建...即 manage.py 所在的目录)创建 templates 文件夹,使用 pycharm 创建项目会自动帮我们创建 配置数据库 DATABASES = { 'default': {...', } } 创建 mysql 数据库 在注册完数据库创建 mysql 数据库 >>> mysql -uroot -p mysql> create database djangoblog...父评论 id 编写模型类代码 根据数据库设计表格完成模型类代码 # DjangoBlog/post/models.py from django.db import models class...:8000 ,我们修改的前端代码就被加载了 接下来我们实现将分类加载,将 index 视图修改为一下代码 blog/views.py ... from .models import Category

53700

Python全栈开发之Django基础

对象关系映射,是随着面向对象思想发展而产生的,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换,面向对象是从软件工程基本原则(耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的...:自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性 BooleanField: 布尔字段,值为True或False NullBooleanField...,自动设置该字段为当前时间,用于最后一次修改的时间戳,默认为False,auto_now_add表示当对象第一次创建自动设置当前时间,用于创建的时间戳,默认为False TimeField: 时间字段...:若为True,则该字段会成为模型主键,默认值是False,一般作为AutoField的选项使用 unique:如果为True, 这个字段在表必须有唯一值,默认值是False 条件查询 查询 exact...,直到调用数据,才会访问数据库 缓存 使用同一个结果集,第一次使用会触发查询数据库,然后将结果缓存下载,再次使用直接调用缓存 限制结果集 可以对结果集进行切片操作,等同于数据库的分页操作,但是不支持负数

3.7K20

Web 开发 Django 模型

简介 Django 模型是真实数据的简单明确的描述,它包含了储存的数据所必要的字段和行为,在创建模型前需要先配置好数据库。...PORT:数据库所在主机服务端口号 创建模型 还是以我们之前创建的投票应用为基础,在这个应用创建两个模型–Question和Choice。...每个模型有一些类变量,它们都表示模型里的一个数据库字段。 每个字段都是 Field 类的实例, CharField 对应数据库的字符串字段。...激活模型 通过配置上面 models.py 类创建模型的代码,已经足够 Django 为我们创建数据库和相应表结构了,现在我们将 polls 应用安装到我们 TestProject 项目中。...模型操作 对模型对象的操作,本质上就是数据库数据的操作。下面我们就通过对模型对象操作实现对数据库记录基本的CURD操作。

1.1K10

「数据架构」什么是实体关系图(ERD)?

当我们在ERD谈到实体,我们通常指的是业务对象,例如人员/角色(例如学生)、有形的业务对象(例如产品)、无形的业务对象(例如日志)等。“关系”是关于这些实体如何在系统相互关联的。 ?...所有这些都允许您分析现有数据库并更容易地发现数据库问题。 数据库创建和补丁 —Visual Paradigm是一个ERD工具,它支持一个数据库生成工具,可以通过ER图的方式自动创建和补丁数据库。...属性具有描述属性的名称和描述属性类型的类型,字符串的varchar和整数的int。在为物理数据库开发绘制ERD,务必确保使用目标RDBMS支持的类型。...一般理解的三个数据模型是业务分析师使用概念模型和逻辑模型系统的业务对象存在,而数据库设计师或数据库工程师阐述了概念和逻辑ER模型生成物理模型,提出了物理数据库结构准备创建数据库。...您是否试图呈现涉及业务对象定义的整个系统体系结构?或者您正在开发一个为数据库创建准备好的ER模型吗?

4.8K21

【Django】 开发:静态文件,应用和模型

一个模型类代表数据库的一张数据表 模型每一个类属性都代表数据库的一个字段。...: 每次保存对象自动设置该字段为当前时间 (取值:True/False)。...auto_now_add: 当对象第一次被创建自动设置当前时间 (取值:True/False)。 default: 设置当前时间 (取值:字符串格式时间: ‘2019-6-1’)。...,表示该列为主键,如果指定一个字段为主键,则此数库表不会创建id字段 blank 设置为True,字段可以为空。....) # objects 是管理器对象 创建数据对象 Django 使用一种直观的方式把数据库的数据表示成Python 对象 创建数据每一条记录就是创建一个数据对象 MyModel.objects.create

1.7K20

Flask入门第三天

一、数据库操作   1,orm orm(object-Relation Mapping),对象-关系映射,主要实现模型对象到关系数据库数据的映射。...在开发过程,需要修改数据库模型,而且还要在修改之后更新数据库。...python manage.py db init   4.2创建迁移脚本 自动创建迁移脚本有两个函数 upgrade():函数把迁移的改动应用到数据库 downgrade():函数则将改动删除 自动创建的迁移脚本会根据模型定义和数据库当前状态的差异...,例如**users**,并在``__init__.py``文件创建蓝图对象 users=Blueprint('users',__name__) 2,在这个蓝图目录下, 创建views.py文件,保存当前蓝图使用的视图函数...('admin.index') # /admin/   4,注册静态路由 和应用对象不同,蓝图对象创建不会默认注册静态目录的路由。

2.7K20

一、Django的基本用法

这种方法可以在SQL等数据库创建与models.py代码对应的表,不需要自己手动执行SQL。 4....使用开发服务器 开发服务器,即开发使用,一般修改代码后会自动重启,方便调试和开发,但是由于性能问题,建议只用来测试,不要用在生产环境。...Django 会自动进入在settings.py设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。 10....有一个数据表,就有一个模型类与之对应 打开models.py文件,定义模型类 引入包from django.db import models 模型类继承自models.Model类 说明:不需要定义主键列...,在生成时会自动添加,并且值为自动增长 当输出对象,会调用对象的str方法 from django.db import models class BookInfo(models.Model):

1.7K50
领券