05 Django工程创建、注册子应用及ORM模型

2023-11-14

一、创建django工程

1 创建

cd ~/Desktop/test

django-admin startproject name

例如:

django-admin startproject testmanager

cd /testmanager

tree

2 工程目录说明

  • 与项目同名的目录,此处为 testmanager:
  • settings.py  是项目的整体配置文件
  • urls.py  是项目的URL配置文件
  • wsgi.py  是项目与WSGI兼容的Web服务器入口
  • manage.py  是项目管理文件,通过它管理项目

 注意: Django工程 不是 所有的 .py文件都可以运行

上面工程目录中,Django工程只有绿色的可以运行

此时,也就是 manager.py 文件

3 运行

python manage.py runserver

 按住 ctrl 点击 http://127.0.0.1:8000/

本机是服务器,点击不了

二、 创建子应用

1 项目和子应用的关系

项目有很多功能,为了功能的划分,创建子应用,一个子应用实现一个功能

这样的情况下,业务模块的复用也是十分方便

2 创建子应用

python manage.py startapp name

manage.py  是创建工程自动生成的管理文件

  • models.py tests.py views,py  MVT模型
  • admin.py  文件跟网站的后台管理站点配置相关
  • apps.py  文件用于配置当前子应用的相关信息
  • migrations 目录用于存放数据库迁移历史文件
  • models.py  文件用户保存数据库模型类。
  • tests.py  文件用于开发测试用例,编写单元测试
  • views.py 文件用于编写Web应用视图

三、注册安装子应用

使用pytharm打开工程

如果不注册,会出现问题

在 settings.py 中注册

 

 

四、 ORM 模型、定义

复习 MVT 模型

 

MVT 设计模式中的 Model,专门负责和数据库交互对应(models.py)

由于 Model 中内嵌了 ORM框架,所以不需要直接面向数据库编程

而是定义模型类,通过 模型类和对象 完成数据库表的 增删改查

 可以看出来。ORM 模型相当于一种特殊的中间层,把复杂的数据库操作封装,透明

 

模型的定义

ORM 的定义  在 model.py 中

foreignkey 外键

from django.db import models

'''
1 模型类继承自 models.Model
2 系统自动为我们添加一个主键  -- id
3 字段
    字段名= model.类型(选项)
    
    字段名就是数据表的字段名,字段名不能使用python mysql的关键字
    
    char(M)
    varchar(M)  M就是选项
'''
# Create your models here.
class BookInfo(models.Model):
    name = models.CharField(max_length= 10)

class PeopleInfo(models.Model):
    name = models.CharField(max_length= 10)
    gender = models.BooleanField()

book = models.ForeignKey(BookInfo,on_delete=models.CASCADE)



使用 Django 进行数据库开发的步骤

  1. 定义模型类
  2. 模型迁移
  3. 操作数据库

五、迁移模型和查看数据表

迁移主要是两个步骤

生成迁移文件,根据模型类生成创建表的语句

类 --》 表结构文件

python manage.py makemigrations

执行迁移,根据生成的语句,在数据库中创建表

执行表结构文件,此时数据库才有表

python manage.py migrate

迁移之前

 

 此处,如果没注册就会出问题

 那么问题来了?表在哪里??

在 sqlite3 中

 

执行迁移之后,数据表在 sqlite3 中

如果拖过去什么都没发生,那就是没有安装驱动 

 

 

 速度会有一点慢,稍等就行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

05 Django工程创建、注册子应用及ORM模型 的相关文章

随机推荐

  • Java基础 类访问权限

    转载自https www cnblogs com jinggod p 8425423 html java基础 七 java四种访问权限 引言 Java中的访问权限理解起来不难 但完全掌握却不容易 特别是4种访问权限并不是任何时候都可以使用
  • Visual Studio 远程调试正在运行的进程

    使用场景 当项目在测试环境上有bug 需要运行代码调试一下 这时就需要在测试环境上安装一个调试工具 然后在本地运行代码 远程链接到测试环境服务器来调试代码 假期鸽了这末长的时间 方式一 工具下载 https visualstudio mic
  • PHP 并发场景的几种解决方案

    PHP 并发场景的几种解决方案 在秒杀 抢购等并发场景下 可能会出现超卖的现象 在 PHP 语言中并没有原生提供并发的解决方案 因此就需要借助其他方式来实现并发控制 列出常见的解决方案有 使用队列 额外起一个进程处理队列 并发请求都放到队列
  • AI换脸小程序是否能实现更高水平的面部融合?

    随着人工智能技术的不断进步 面部识别技术在AI换脸小程序中的应用也日益成熟 这项技术的发展趋势逐渐朝着实现更加精准和逼真的面部融合效果 本文将探讨当前面部识别技术的发展趋势 并分析其在AI换脸小程序中实现更高水平的面部融合效果的可能性 一
  • flutter之Container

    Container类似于iOS中的UIView 具有绘制 定位 调整大小功能 通常用来装载其它子控件 假如Container没有子控件 它将自动填充整个屏幕 反之 会根据子控件大小 调整自身大小 从而达到自适应效果 注意 使用Contain
  • Unity PlayerSetting Android打包设置介绍

    Unity 版本 2018 3 0f2以下部分内容来自Unity文档和网上资料 如有错误 请在评论区指正 我看到后会进行改正和更新 Icon 后续更新 略 Resolution And Presentation 后续更新 略 Splash
  • python实现链表的旋转

    python实现链表的旋转 链表是一种常用的数据结构 实现起来也不难 但当我们需要将链表中的元素旋转时 就会有一些困难 本文介绍基于python语言的链表旋转实现方法 实现思路 链表旋转可以通过移动节点的位置来实现 我们可以找到需要旋转的位
  • 第二节 分支和循环语句

    第二节 分支和循环语句 目录 一 什么是语句 二 分支语句 选择结构 三 循环语句 本章重点 分支语句 if switch 循环语句 while for do while goto语句 一 什么是语句 C语句可分为以下五类 表达式语句 函数
  • STM32关于编译不通过,错误提示 Error: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o

    今天正式开始学习stm32的开发板 在学习的时候 发现连例程都不能够通过编译 然后测试了好久 发现都是这种错误 然后上网查找到了答案 找到了解决的方法 这里来记录一下 转载来自 http blog sina com cn s blog 54
  • echarts在data里定义的formatter函数失效问题

    在echarts官方运行的时候是生效的 拿到项目里循环之后就失效了 后来井排查发现 是因为循环的时候 使用了JSON stringify this eqpOption 函数 导致 echarts的option里默认itemStyle的方法都
  • 构建可扩展的应用:六边形架构详解与实践

    面试题分享 云数据解决事务回滚问题 点我直达 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java python面试题 项目实战 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转clo
  • 第十届蓝桥杯省赛C++B组 完全二叉树的权值

    试题 G 完全二叉树的权值 时间限制 1 0s 内存限制 256 0MB 本题总分 20 分 问题描述 给定一棵包含 N 个节点的完全二叉树 树上每个节点都有一个权值 按从上到下 从左到右的顺序依次是 A1 A2 AN 如下图所示 现在小明
  • 机器学习好伙伴之scikit-learn的使用——学习曲线

    机器学习好伙伴之scikit learn的使用 学习曲线 什么是学习曲线 sklearn中学习曲线的实现 应用示例 什么是学习曲线呢 其内容主要包含当训练量增加时 loss的变化情况 什么是学习曲线 学习曲线主要反应的是学习的一个过程 常用
  • 求过审~~~

    我要过审 纯水
  • 微信小程序openid取不到,总是undefined

    今天在做微信小程序开发的时候 遇到了这样的问题 微信小程序官网的坑是少了data 所以获取不到 是undefined 但我加了data还是undefined 解决方法是 遍历res data这个对象数组 看回送的错误码及错误是什么 我的错误
  • C++成员函数模板特化问题

    C 成员函数模板特化问题 1 类似代码写法 include
  • Java中的常量池

    一 在Java中有那些常量池 谈到常量池 在Java体系中 共用四种常量池 分别是字符串常量池 Class常量池和运行时常量池 JAVA 基本类型的封装类及对应常量池 二 字符串常量池 在JVM中 为了减少相同的字符串的重复创建 为了达到节
  • 手写python实现梯度下降算法(base问题:多元线性回归)

    手写python实现梯度下降算法 因为课程设计的原因 接触了很多和机器学习相关的事情 在学习的时候发现 机器学习如果只是听不写代码基本什么都学习不到 于是自己利用python手写了大部分的常见的基础的算法 很有趣呢 慢慢更新咯 文章目录 手
  • c语言中y=0x20什么意思,ASCII码0x20之前的码分别是什么意义?

    ASCII码0x20之前的码分别是什么意义 ascii码0x20之前的码分别是什么意义 c 语言 ascii码表中的前32个都是些控制字符 nul 0 0000 0x00 sp 32 0040 0x20 64 0100 0x40 96 01
  • 05 Django工程创建、注册子应用及ORM模型

    一 创建django工程 1 创建 cd Desktop test django admin startproject name 例如 django admin startproject testmanager cd testmanager