Django下载使用、文件介绍

news2024/11/16 23:40:17

【一】下载并使用

【1】下载框架

(1)注意事项

  • 计算机名称不要出现中文
  • python解释器版本不同可能会出现启动报错
  • 项目中所有的文件名称不要出现中文
  • 多个项目文件尽量不要嵌套,做到一项一夹

(2)下载

  • Django属于第三方模块,需要下载安装
  • 如果之前下载了其他版本不用管,解释器会自动卸载替换
pip install django==3.2.12

【2】命令行启动

(1)创建Django项目

  • 在win11系统的cmd终端切换到要创建的项目文件夹
cd /d 文件夹路径
  • 创建项目
django-admin startproject 项目名

(2)启动项目

  • 进入到创建的项目文件中(含有manager.py文件)
cd 项目名
  • 启动项目
    • 不写,默认是127.0.0.1:8000
python mananger.py runserver [IP:PORt]
  • 得到地址就可以进入了
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

(3)创建APP

  • 需要再次启动一个cmd终端
    • 如何快速在指定文件夹启动
    • 在文件夹导航条的最前面输入cmd+空格即可
  • 创建app
    • 将在这个目录下创建文件夹应用名
python manage.py startapp 应用名

(4)注册app

  • 创建APP后,必须将创建的APP注册到配置文件中

  • 才可以使用相关的功能

  • setting.py文件夹中进行修改

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '应用名', --简写
    
]

【3】pycharm启动

(1)创建Django项目

  • File —> New Project

请添加图片描述

(2)启动项目

  • 配置可以更改也可以不改
  • 右上角展开 —> edit configurations

请添加图片描述

  • 启动
    • 像普通py文件一样直接点击右上角运行

(3)创建APP

  • 方式一:

    • 点击pycharm底部Terminal

    • 输入

    • python .\manage.py startapp 应用名
      
  • 方式二:

    • 点击tools —> Run manage.py Task

    • 输入

    • startapp 应用名
      

(4)注册app

  • 如果在创建项目时,也创建了app
    • 那么这个app已经自动注册了
  • 后续通过命令创建的app
    • 需要修改settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'admin.apps.App01Config', --全称
    'admin', --简写
]

【二】项目文件介绍

【1】APP

  • 这并不是指手机上的app

(1)介绍

  • 在Django中,App(应用)是指一个可重用的模块,用于实现特定功能或业务逻辑的组件。
  • 每个Django项目由一个或多个App组成,每个App可以包含模型、视图、模板和静态文件等组件,用于处理特定的功能模块。

(2)作用

  • App用于将一个大型的Web应用程序拆分为多个小的、可重用的模块。
  • 每个App都负责处理特定的功能或业务逻辑,使得应用程序的开发和维护更加模块化和可扩展。

(3)组成

  • 模型(Models):模型定义了数据结构和数据库表之间的映射关系。每个App通常会包含自己的模型,用于处理和管理特定的数据。
  • 视图(Views):视图负责处理用户的请求和逻辑处理。每个App可以包含自己的视图,用于处理特定功能的请求和生成响应。
  • 模板(Templates):模板用于展示数据给用户。每个App可以包含自己的模板,用于定制和渲染特定功能的页面。
  • 静态文件(Static Files):静态文件包括CSS样式表、JavaScript脚本和图像等。每个App可以包含自己的静态文件,用于定制和美化特定功能的界面。

(4)结构

  • 每个App通常都有一个独立的目录,其中包含该App的相关组件和文件。
  • 在App的目录中,通常会包含一个models.py文件,用于定义该App的模型。
  • 可以在App的目录中创建views.py文件,用于定义该App的视图函数或类。
  • 可以在App的目录中创建templates目录,用于存放该App的模板文件。
  • 可以在App的目录中创建static目录,用于存放该App的静态文件。
  • 还可以在App的目录中创建其他辅助文件,如表单定义、URL配置等。

【2】文件结构

(1)空项目

├── Django项目名       				  # 整体项目名
  ├── db.sqlite3      				 	# Django默认的db数据库,sqlite3
  ├── manage.py				            # Django的服务控制文件,所有的Django命令都是基于manage.py 来执行的
  ├── templates.py				        # 专门存储html文件
  └── Django项目名					      # 项目名
      ├── __init__.py	                # 包初始化文件
      ├── __pycache__	                # 缓存编译后的模块代码,加快加载速度
      │   ├── __init__.cpython-310.pyc  # 编译后的文件
      │   ├── settings.cpython-310.pyc  # 编译后的文件
      │   ├── urls.cpython-310.pyc 		# 编译后的文件
      │   └── wsgi.cpython-310.pyc      # 编译后的文件
      ├── asgi.py                       # 支持异步请求处理的应用程序接口
      ├── settings.py                   # 配置文件
      ├── urls.py			            # 实现URL路由规则
      └── wsgi.py			            # Django项目的入口点,将HTTP请求传递给WSGI容器,以启动Django服务器。
  • Django项目名

    • 项目创建时指定的名称
    • 每个Django项目都有一个唯一的名称,并且在整个项目目录下作为顶级目录存在。
  • db.sqlite3

    • Django默认使用的SQLite数据库文件

    • SQLite是一个轻量级的关系型数据库管理系统,无需服务器运行,所有数据存储在一个文件中

      在这个项目中,SQLite被用作开发阶段的数据存储和本地测试环境的默认选项

  • manage.py

    • 这是Django的核心服务控制脚本,包含了各种用于管理和维护项目、应用程序以及运行Django服务器的内置命令。
    • 通过manage.py,您可以执行如创建数据库、迁移模型、创建超级用户、运行开发服务器等操作。
  • Django项目名

    • __init__.py
      
      • 这是一个空的Python模块文件,它告诉Python这是一个包含其他模块或包的目录。
      • 尽管对于Django项目来说,这通常不是必需的,但在一些情况下可能会用到。
    • __pycache__
      
      • Python会在此目录下缓存编译后的模块代码,以便加快后续加载速度。
      • 这些目录通常不应该直接修改或删除,而是由Python自动处理。
      • __init__.cpython-310.pyc: 编译后的初始化模块。
      • settings.cpython-310.pyc, urls.cpython-310.pyc, wsgi.cpython-310.pyc: 分别对应于settings.py、urls.py和wsgi.py这三个文件的编译版本。
    • asgi.py

      • 在Django 3.0及更高版本中,此文件允许将项目配置为ASGI应用(Asynchronous Server Gateway Interface),即支持异步请求处理的应用程序接口,适用于生产环境中部署长连接或WebSocket服务。
    • settings.py

      • 项目级别的设置文件,定义了诸如数据库连接、认证方式、中间件列表、静态文件托管、邮件配置等各种全局设置,以及其他项目自定义配置信息。
    • urls.py

      • 应用程序级别的URL配置文件,定义了项目内各个视图函数与URL模式之间的映射关系,实现了URL路由规则。
    • wsgi.py

      • Web Server Gateway Interface (WSGI) 实现文件,是Django项目的入口点,将HTTP请求传递给WSGI容器(如uWSGI, Gunicorn, uWSGI等)以启动Django服务器。
      • 在早期版本中,Django项目可能只有一个根WSGI应用;而在现代Django项目中,可能涉及多个WSGI应用组合。

(2)app目录

└── APP名称			   # APP名称
  ├── __init__.py  		# 包初始化文件
  ├── admin.py          # 注册管理后台界面中的模型
  ├── apps.py     		# 定义当前app相关的信息
  ├── migrations  		# 模型相关的数据迁移历史记录文件
  │   └── __init__.py   # 包初始化文件
  ├── models.py   		# 数据库模型
  ├── tests.py    		# 用于编写单元测试
  └── views.py    		# 主要逻辑处理模块,负责接收 HTTP 请求并返回响应
  • APP名称 是Django应用程序目录,它遵循Django应用组织的标准结构,用于组织可重用的功能模块。
    • __init__.py
      • 此文件是空的,但它表明当前目录 是一个Python包,里面包含其他子模块或文件。
    • admin.py
      • 如果应用需要注册管理后台界面(Admin Site)中的模型,则应在该文件中编写自定义的ModelAdmin类,以便管理和编辑数据库表中的记录。
      • 如果没有特定需求,可以保持为空或者注释掉。
    • apps.py
      • 此文件定义了 应用本身,包括应用的元数据(如名称、路径等)、是否启用该应用,以及与其他应用的关系(如有依赖)。
    • migrations
      • 存储与模型相关的数据迁移历史记录文件(.py)和应用状态文件(.pyc)。
      • 当更改了 “models.py” 中的模型结构时,Django会根据这些变更生成新的迁移文件,用于更新数据库结构以保持一致。
    • models.py
      • 该文件定义了的数据库模型(也称为数据结构或对象)。
      • 每个模型继承自 django.db.models.Model 并定义字段及其属性,例如字段类型、验证规则、外键关联等。它是实现业务逻辑的基础,并最终决定了数据库表的设计。
    • tests.py
      • 用于编写单元测试(Unit Tests)的模块,确保 应用中各个功能模块正确无误地工作。
      • 通过unittest.TestCase类或使用更高级别的测试框架如pytest进行测试用例编写。
    • views.py
      • 视图(Views)是 应用中的主要逻辑处理模块,负责接收 HTTP 请求并返回响应。
      • 它们是Django URL 路由系统与用户交互的核心部分,定义了如何解析请求、调用相应的业务逻辑以及构建最终返回的响应数据。
      • 每个视图通常与 URLconf 中的一个 URL 路由关联起来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1542170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无人机摄影测量---倾斜摄影测量原理与关键技术

《无人机航空摄影测量精品教程》专栏:无人机航测外业作业流程(像控点布设、航线规划、仿地飞行、航拍)和内业数据处理软件(Pix4d、CC、EPS、PhotoScan、Globalmapper)像控点权重调配、空三加密、DOM、DSM、DEM&#xf…

ubuntu18安装opensips3.4,开启ws/wss/http接口模块

、如果是centos 7安装则使用yum 命令。 添加库地址注意系统类型,选择对应的系统类型和版本 curl https://apt.opensips.org/opensips-org.gpg -o /usr/share/keyrings/opensips-org.gpg echo "deb [signed-by/usr/share/keyrings/opensips-org.gpg] https:/…

芯片工程系列(5)2.5D 3D封装

0 英语缩写 硅通孔(Through Silicon Via,TSV)硅中介层(Silicon Interposer)物理气象沉淀法(Physical Vapor Deposition,PVD)DRIE、CVD、PVD、CMP等设备CoWoS(Chip on Wa…

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(五)—— Dropout和批归一化

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! Dropout和批归一化是深度学习领域中常用的正则化技术…

pytorch如何向tensor结尾添加元素或维度--torch.cat()、torch.unsqueeze()的用法

目录 示例1 矢量后增加元素 示例2 tensor维度增加1 示例3 另一种替代unsqueeze的方法 示例1 矢量后增加元素 使用torch.cat()函数 ptorch.Tensor([1,5,0]) ptorch.cat((p, torch.Tensor([4])), 0) 结果: 这里,cat的第一个输入变量用()包绕&#xf…

中断(NVIC)的使用--EXTI--TIM

目录 中断是什么 轮询 中断 中断调用情况 中断的分类 内部中断(TIM、UART等) tim.c tim.h 外部中断EXTI exti.c exti.h 中断是什么 在处理事件的时候有两种方式:轮询和中断。 轮询 顾名思义,就是每轮都询问一次。比如…

笔记本和台式机主板内部结构分析

笔记本和态势机主板内存接口以及配件安装位置 笔记本主板 1 以thinkpad L-490为例,使用拆机小工具拆机,打开后面板,内部结构示意图如下 台式机主板 以技嘉-B660M-AORUS-PRO-AX型号主板为例 笔记本电脑和台式机电脑的相同之处 CPU:笔记本…

Python爬虫-批量爬取星巴克全国门店

前言 本文是该专栏的第22篇,后面会持续分享python爬虫干货知识,记得关注。 本文笔者以星巴克为例,通过Python实现批量爬取目标城市的门店数据以及全国的门店数据。 具体的详细思路以及代码实现逻辑,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM…

计算机三级——网络技术(综合题第五题)

第一题 填写路由器RG的路由表项①至④。 目的网络/掩码长度输出端口输出端口172.19.63.192/30S0(直接连接)172.19.63.188/30S1(直接连接) 路由器RG的S0的IP地址是172.19.63.193,路由器RE的S0的IP地址是172.19.63.194。 【解析】…

Excel打开CSV文件中文乱码问题

Excel的数据导入功能 直接用Excel打开下载的CSV文件,会看到汉字乱码,数字显示正常。如下图所示现象。 请先正常打开一份空白的excel文件,将鼠标定位在第一行第一列,这边鼠标定位的位置将决定后续打开的csv文件在excel中展示的位置…

C++项目——集群聊天服务器项目(四)MySQL数据库

今天来介绍集群聊天器项目中MySQL数据库的相关表结构 集群聊天服务器项目需要进行好友、群组的增删操作以及好友离线状态的判断,需要在数据库中建立相关表进行增删改查操作,因此项目设计了如下五个表,大家可以自己动动小手,使用S…

网盘——数据库操作

关于网盘的数据库模块,主要有以下几个内容:定义数据库操作类、将数据库操作类定义成单例模式、数据库操作 数据库是在Qt里面,定义成操作类,专门用这个类产生对象,对数据库实现操作,那么我们在产生对象的时…

Linux升级GCC

文章目录 一、安装 EPEL 仓库二、更新yum三、安装 CentOS 开发工具组四、安装scl五、安装gcc 11六、启用gcc 11七、设置永久使用 一、安装 EPEL 仓库 命令: yum install epel-release -y二、更新yum 命令: yum update -y三、安装 CentOS 开发工具组 …

C语言 数组指针 指针数组

指针数组 什么是指针数组&#xff0c;他是一个数组&#xff0c;数组的元素是指针。但是指针也有多种数据类型&#xff0c;有数组指针、函数指针、整形指针、字符串指针。 现在我就使用函数指针来写代码&#xff0c;也就是函数指针数组的应用代码&#xff1a; #include <s…

20240319-图论

图论练习题目 拓扑排序深度优先搜索方法广度优先搜索方法 无向无权图无向有权图有向无权图 利用广度优先搜索算法有向有权图 带排序的广度优先算法/dijkstra最小生成树prims算法Kruskals Algorithm 最小割 min-cut二分图 Bipartite Graph 队列例题1 所有可能的路径例题2 岛屿数…

python学习11:python中的字符串的注意点

python中的字符串的注意点 1.定义字符串的三种方式&#xff1a; 2.字符串中有引号是如何定义呢&#xff1f; 3.字符串的之间的拼接 4.字符换的格式化 字符换的拼接&#xff0c;如果变量过多拼接起来就太麻烦了&#xff0c;这就引起字符串的格式化 格式化中&#xff1a;不…

YOLO算法改进Backbone系列之:CoaT

在本文中&#xff0c;我们提出了co-scale conv-attention image transformer&#xff08;CoaT&#xff09;&#xff0c;这是一种基于Transformer的图像分类器&#xff0c;配备了co-scale和conv-attention机制。首先&#xff0c;co-scale机制在各个尺度上保持Transformer编码器支…

SpringBoot Starter解析

conditional注解解析 介绍 基于条件的注解作用: 根据是否满足某一个特定条件决定是否创建某个特定的bean意义: Springboot实现自动配置的关键基础能力 常见的conditional注解 ConditionalOnBean: 当容器中存在某个Bean才会生效ConditionalOnMissingBean: 不存在某个Bean才会…

day3-QT

1>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函。将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是…

[BT]BUUCTF刷题第6天(3.24)

第6天 Web [极客大挑战 2019]PHP Payload&#xff1a; O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}这道题考点是网站源码备份文件泄露和PHP反序列化&#xff0c;有篇介…