Pycharm开发Django项目创建ORM模型的问题

随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:

  1. SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。
  2. 很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些SQL语句的修改。
  3. 写SQL时容易忽略web安全问题,给未来造成隐患。SQL注入。

ORM,全称Object Relational Mapping,中文叫做对象关系映射,通过ORM我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句。通过把表映射成类,把行作实例,把字段作为属性,ORM在执行对象操作的时候最终还是会把对应的操作转换为数据库原生语句。使用ORM有许多优点:

  1. 易用性:使用ORM做数据库的开发可以有效的减少重复SQL语句的概率,写出来的模型也更加直观、清晰。
  2. 性能损耗小:ORM转换成底层数据库操作指令确实会有一些开销。但从实际的情况来看,这种性能损耗很少(不足5%),只要不是对性能有严苛的要求,综合考虑开发效率、代码的阅读性,带来的好处要远远大于性能损耗,而且项目越大作用越明显。
  3. 设计灵活:可以轻松的写出复杂的查询。
  4. 可移植性:Django封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的MySQLPostgreSQLSQLite。可以非常轻松的切换数据库。

创建ORM模型:

ORM模型一般都是放在appmodels.py文件中。每个app都可以拥有自己的模型。并且如果这个模型想要映射到数据库中,那么这个app必须要放在settings.pyINSTALLED_APP中进行安装。以下是写一个简单的书籍ORM模型。示例代码如下:

from django.db import models
class Book(models.Model):
    name = models.CharField(max_length=20,null=False)
    author = models.CharField(max_length=20,null=False)
    pub_time = models.DateTimeField(default=datetime.now)
    price = models.FloatField(default=0)

以上便定义了一个模型。这个模型继承自django.db.models.Model,如果这个模型想要映射到数据库中,就必须继承自这个类。这个模型以后映射到数据库中,表名是模型名称的小写形式,为book。在这个表中,有四个字段,一个为name,这个字段是保存的是书的名称,是varchar类型,最长不能超过20个字符,并且不能为空。第二个字段是作者名字类型,同样也是varchar类型,长度不能超过20个。第三个是出版时间,数据类型是datetime类型,默认是保存这本书籍的时间。第五个是这本书的价格,是浮点类型。
还有一个字段我们没有写,就是主键id,在django中,如果一个模型没有定义主键,那么将会自动生成一个自动增长的int类型的主键,并且这个主键的名字就叫做id

映射模型到数据库中:

ORM模型映射到数据库中,总结起来就是以下几步:

  1. settings.py中,配置好DATABASES,做好数据库相关的配置。
  2. app中的models.py中定义好模型,这个模型必须继承自django.db.models
  3. 将这个app添加到settings.pyINSTALLED_APP中。
  4. 在命令行终端,进入到项目所在的路径,然后执行命令python manage.py makemigrations来生成迁移脚本文件。
  5. 同样在命令行中,执行命令python manage.py migrate来将迁移脚本文件映射到数据库中。

到此这篇关于Pycharm开发Django项目ORM模型介绍的文章就介绍到这了,更多相关Pycharm开发Django项目内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python使用Pycharm创建一个Django项目

    本文为Django项目创建的简单介绍,更为详细的Django项目创建,可以参考如下教程: Django入门与实践-//www.jb51.net/article/64109.htm Pycharm 版本: Professional 2017.1 Django 版本: 1.8.7 在软件安装和环境配置完成后,打开Pycharm. Step 1. 点击 File --> New Project 弹出如下窗口: 图中编号1处为项目位置:编号2处为使用的模板语言类型,默认为Django模板语言:编号3处是

  • 详解pycharm的newproject左侧没有出现项目选项的情况下创建Django项目的解决方法/社区版pycharm创建django项目的方法

    首先,我当时出现的问题是newproject创建的时候没有django的选项,查了半天发现我安装的pycharm是社区版本.所以需要用终端命令行的方式创建django项目. 首先,随便打开一个项目,然后在pycharm界面的左下角有Terminal终端的图标,点开. cd返回根目录 在终端输入你PycharmProjects的目录,由于我是mac 端,我输入的是:cd /Users/apple/PycharmProjects 进入目录后,输入:django-admin startproject

  • 使用PyCharm创建Django项目及基本配置详解

    pycharm是个很不错的python开发工具,大大缩短了python项目的创建时间以及调试时间 在使用python写脚本一段时间后,想尝试使用Django来编写一个python项目,现做以下记录备忘: 1.创建项目 如果本地没有安装与所选python版本对应Django版本,pycharm会自动下载相应的版本: 创建后运行项目,默认页面为http://127.0.0.1:8000/,打开后: 出现上面的页面,则正面项目创建成功 目录结构: 2.创建APP 在Django项目中可以包含多个APP

  • 在Pycharm中调试Django项目程序的操作方法

    最近利用Django开发了一个小网站,但是遇到问题无法调试.查阅资料找到如下方法配置Pycharm对Django进行调试 步骤如下: 1 首先在Pycharm中打开你的Django项目,点击上面编辑栏上的run->Edit Configurations 如下图1: 2 在打开的窗口中,把Defaults的+号打开,点击Python.然后在出现的右侧窗口中输入以下数据: Script: manage.py Script Parameters: runserver .输入完毕后右下角点击Apply按

  • Pycharm开发Django项目创建ORM模型的问题

    随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了: SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长.会出现很多相近的SQL语句. 很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些SQL语句的修改. 写SQL时容易忽略web安全问题,给未来造成隐患.SQL注入. ORM,全称Object Relational Mapping,中文叫做对象关系映射,通过ORM我们可以通过类的方式去操作数据库,

  • 用pycharm开发django项目示例代码

    在pycharm(企业版)中新建Django工程,注意使用虚拟环境 创建成功后,在pycharm显示的工程目录结构如下: 打开pycharm的Terminal,进入该工程的目录新建一个django工程 python3 manage.py startapp django_web 执行成功后,工程目录结构如下: 修改settings.py文件,注册该工程 Django的开发遵循MTV模式(models, templates, views),views.py负责执行操作,models.py负责数据处理

  • pycharm部署django项目到云服务器的详细流程

    目录 前言 1-下载python3.8压缩包 2-解压缩安装包 3-安装依赖工具 4-安装python3.8 6-修改yum配置文件 7-配置python 8-检验配置结果 9-上传并部署Django项目 前言 大家想一想,如果要在一台电脑上运行python程序需要些什么工具呢? 显而易见,我们需要在电脑上安装python应用,配置python环境等等.那么如果我们需要在云服务器上运行python程序的话要怎么做呢?相信大家已经想到了,就是照葫芦画瓢,在云服务器上做相同的工作就好了. 1-下载p

  • django框架面向对象ORM模型继承用法实例分析

    本文实例讲述了django框架面向对象ORM模型继承用法.分享给大家供大家参考,具体如下: Django ORM对模型继承的支持,将python面向对象的编程方法与数据库面向关系表的数据结构结合的很巧妙.支持三种风格的模型继承. 1.抽象类继承:父类继承自models.Model,但不会在底层数据库中生成相应的数据表,父类的属性列存储在其子类的数据表中. 2.多表继承:多表继承的每个模型类都在底层数据库中生成相应的数据表管理数据. 3.代理模型继承:父类用于在底层数据库中管理数据表,而子类不定义

  • Django项目创建到启动详解(最全最详细)

    一.前言 (一).概述 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python写成. Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 . Django采用了MVC的软件设计模式,即模型M,视图V和控制器C: (二).预处理 配置环境 OS:CentOS 7.6 64bit python版本:3.7 Wind

  • Django项目创建及管理实现流程详解

    1.主题 这部分教程主要介绍如何通过Pycharm创建.管理.运行一个Django工程.对于Django模块的相关知识大家可以参考Python社区. 2.准备环境 Django版本为2.0或更高Pycharm版本2017Python3.6解释器 3.创建一个新工程 实际上所有工程的创建都可以通过单击Welcome screen界面上的Create New Project按钮来实现. 如果你已经打开了一个工程,可以通过菜单栏File → New Project...来创建一个新的工程.接下来在Cr

  • Pycharm创建Django项目示例实践

    目录 一.Pycharm安装Django框架 二.新建Django项目 三.在Django项目创建WebApp项目 四.运行项目:在pycharm的Terminal中输入命令运行服务器: 五.在项目中添加资源(css.image.js) 一.Pycharm安装Django框架 二.新建Django项目 1.manage.py是个管理角色,拥有的功能包括: (1)创建app: python manage.py startapp miaTest 其中startapp是命令,miaTest为app的名

  • django的ORM模型的实现原理

    ORM模型介绍 随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了: SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长.会出现很多相近的SQL语句. 很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些SQL语句的修改. 写SQL时容易忽略web安全问题,给未来造成隐患.SQL注入. ORM ,全称 Object Relational Mapping ,中文叫做对象关系映射,通过 ORM 我们可以

  • 创建Django项目图文实例详解

    本文实例讲述了创建Django项目的方法.分享给大家供大家参考,具体如下: 创建Django项目 创建一个HelloDjango项目 GitHub地址:https://github.com/liangdongchang/HelloDjango.git 1.在linux命令窗口终端下 创建Django项目 django-admin.py startproject HelloDjango sudo apt install tree tree HelloDjango/ 2.在PyCharm中创建 fi

随机推荐