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模型 的相关文章

  • 静态文件配置不正确

    我已经在 Heroku 上部署了简单的博客应用程序 它运行在Django 1 8 4 我在静态文件方面遇到了一些问题 当打开我的应用程序时 我看到Application Error页面 所以我尝试调试它并发现当我提交到 Heroku 时它无
  • 如何在 Django 管理中以表格格式显示添加模型?

    我刚刚开始使用 Django 编写我的第一个应用程序 为我的家庭设计的家务图表管理器 在本教程中 它向您展示了如何添加相关对象 http docs djangoproject com en dev intro tutorial02 cust
  • 创建圆形图像 PIL Tkinter

    Currently I have a zoom feature in my application that works very well however I d like the actual zoom box to be a circ
  • 我怎样才能在python cgi中找到上传的文件名

    我制作了如下简单的网络服务器 import BaseHTTPServer os cgi import cgitb cgitb enable html
  • 如何在Python中的BeautifulSoup4中使用.next_sibling时忽略空行

    由于我想删除 html 网站中重复的占位符 因此我使用 BeautifulSoup 的 next sibling 运算符 只要重复项位于同一行 就可以正常工作 参见数据 但有时它们之间有一个空行 所以我希望 next sibling 忽略它
  • 在 Python 3 中动态导入模块的问题

    我遇到的情况是 在我的 Python 3 项目中 在运行时必须包含某些模块 我在用着importlib import module为了这 第二次更新 我确实找到了一种方法来做一些接近我想要的事情 一些额外的代码可能会使我的一些链接稍微偏离一
  • 在 keras 中使用自定义张量流操作

    我在张量流中有一个脚本 其中包含自定义张量流操作 我想将代码移植到 keras 但我不确定如何在 keras 代码中调用自定义操作 我想在 keras 中使用tensorflow 所以到目前为止我发现的教程描述了与我想要的相反的内容 htt
  • 不想每次更新 css/js 时都清除浏览器缓存

    我有 python django 网站 其中包含 css 和 js 文件 每次更新 添加 css 或 js 都必须清除浏览器的缓存 然后才能反映在浏览器中 有什么具体方法可以避免每次缓存清除和检查吗 django 中是否有任何特定设置可以避
  • Pandas Pivot_Table :非数字值的行计算百分比

    这是我在数据框 df 中的数据 Document Name Time SPS2315511 A 1 HOUR SPS2315512 B 1 2 HOUR SPS2315513 C 2 3 HOUR SPS2315514 C 1 HOUR S
  • 如何使用 msgpack 进行读写?

    如何序列化 反序列化字典data with msgpack http msgpack org The Python 文档 http msgpack python readthedocs io en latest badge latest似乎
  • 提交表格并上传带有请求的文件

    我正在努力提交特定的表格蟒蛇请求 http www python requests org 我想使用它的网站上的其他表单工作正常 我可以提交登录表单等 这只是我遇到问题的文件上传 显然 提交表单效果很好 因为我从网站收到一条消息 说 请返回
  • Python 垃圾收集有时在 Jupyter Notebook 中不起作用

    我的一些 Jupyter 笔记本经常出现 RAM 不足的情况 而且我似乎无法释放不再需要的内存 这是一个例子 import gc thing Thing result thing do something thing None gc col
  • 为 Python 2.4 改进“with”语句的直接替换

    您能否建议一种方法来编写可在 Python 2 4 中使用的 with 语句的直接替换代码 这将是一个 hack 但它可以让我更好地将我的项目移植到 Python 2 4 EDIT 删除了不相关的元类草图 只需使用 try finally
  • 如何在 Python 中仅列出 zip 存档中的文件夹?

    如何仅列出 zip 存档中的文件夹 这将列出存档中的每个文件夹和文件 import zipfile file zipfile ZipFile samples sample zip r for name in file namelist pr
  • 向量化 numpy bincount

    我有一个 2d numpy 数组 A我要申请np bincount 到矩阵的每一列A生成另一个二维数组B由原始矩阵每列的 bincounts 组成A 我的问题是 np bincount 是一个采用一维数组的函数 它不是像这样的数组方法B A
  • 从 csv 中读取 pandas 数据帧,以非固定标头开始

    我有许多数据文件是由我的实验室中使用的一些相当黑客的脚本生成的 该脚本非常有趣 因为它在标头之前附加的行数因文件而异 尽管它们具有相同的格式并具有相同的标头 我正在编写一个批处理来将所有这些文件处理为数据帧 如果我不知道位置 如何让 pan
  • django模板中获取用户信息

    从 django 模板获取用户信息的最佳方法是什么 例如 如果我只想 如果用户已登录 则显示 欢迎 用户名 否则 显示登录按钮 我正在使用 django 注册 身份验证 当前 Django 版本的替代方法 if user is authen
  • 如何使用 Python 将我的 GoPro Hero 4 相机直播连接到 openCV?

    我在尝试从我的新 GoPro Hero 4 相机捕获实时流并使用 openCV 对其进行一些图像处理时遇到麻烦 这是我的试用 创建的窗口上没有显示任何内容 import cv2 import argparse import time imp
  • Selenium Python 使用代理运行浏览器[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个非常简单的脚本 该脚本从 txt 文件获取代理 不需要身份验证 并用它打开浏览器 然后沿着代理列表循环此操作一定次数 我确实知道如何打开 txt 文件并使用它 我的主要问题是让代理正常工作 我见
  • python中匹配3个或更多相同的字符

    我正在尝试使用正则表达式在字符串中查找三个或更多相同的字符 例如 你好 不匹配 噢 会的 我尝试过做类似的事情 re compile 1 3 a zA Z re compile w 1 5 但似乎都不起作用 w 1 2 是您正在寻找的正则表

随机推荐

  • 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