Django框架之Django安装与使用

一、Django框架下载

首先我们需要先确定好自己电脑上的python解释器环境,否则会导致后面项目所需要的库安装不了以及项目无法运行的问题。

要下载Django并开始使用它,你可以按照以下步骤进行:

1、安装Python

  • 首先,确保你的计算机上已经安装了Python。你可以从 Python官方网站 下载最新版本的Python,并按照说明进行安装。

2、安装Django

  • 你可以使用Python的包管理工具pip来安装Django。打开命令行终端(Windows下为命令提示符或PowerShell,Mac和Linux下为终端),然后运行以下命令来安装最新版本的Django:

    pip install django==3.2.12
    
  • 如果之前下载了其他版本不用管

  • Python解释器会将旧版本卸载,安装指定的版本,即自动替换!!!

3、验证安装

(1)Python文件

  • 在你的Python解释器安装目录下的 Scripts 文件夹下 会出现一个 django-admin.exe的文件

在这里插入图片描述

(2)命令行终端

  • 终端输入会出现如下,原理就是调用了Scripts下的django-admin
  • 如果确定自己安装成功了,但是就是在终端没效果,那一定是你的环境有问题!
    • 当前是否能正常打印Python解释器版本
    • 核验自己安装的Django到底是安装在了哪个Python解释器上
django-admin --version

在这里插入图片描述

4、安装注意事项

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

二、命令行基本使用

1、创建Django项目

  • 在命令行中,进入到你想要创建Django项目的目录,然后运行以下命令来创建一个新的Django项目:

    django-admin startproject projectname
    

其中,projectname是你的项目名称。这将在当前目录下创建一个名为projectname的Django项目。

例如

在这里插入图片描述

  • 查看当前文件夹下内容,会发现多了一个文件夹,文件夹下有很多对应的文件

在这里插入图片描述

2、运行开发服务器

  • 进入到刚刚创建的Django项目目录,运行以下命令启动Django的开发服务器:
python manage.py runserver

然后,在浏览器中访问 http://127.0.0.1:8000/,你就能看到Django的欢迎页面,表明你的Django项目已经成功运行。

例如

  • 首先切换刚刚创建的项目路径
cd C:\Users\Xiao\test01
  • 然后运行项目,即可提起项目

在这里插入图片描述

  • 提起项目之后,输入网址127.0.0.1:8000,得到下面的页面即算成功。

在这里插入图片描述

3、创建APP

(1)语法

python manage.py startapp 应用名
  • 应用名一般为英文

(2)示例

  • 同上,在当前 manage.py 所在终端目录下
python3 manage.py startapp app01# 上面命令不生效,试试 python3 能不能进入到python解释器,如果不能,换下面的试试
python manage.py startapp app01

在这里插入图片描述

  • 查看当前文件夹下会发现多了一个 app01 文件夹

在这里插入图片描述

(3)注册APP

  • 创建APP后,如果想使用相关的功能,必须将创建的APP注册到配置文件中
  • 即在settings中加入下述内容
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 找到对应的配置内容中,加入当前新创建的APP的名字'app01'
]

四、PyCharm基本使用

1、创建Django项目

(1)创建项目

  • File —> New Project

在这里插入图片描述

(2)创建成功

  • 创建完成后的目录结构

在这里插入图片描述

ps:test01只有一个哈,创建只能创建app来实现功能啊

2、启动Django项目

(1)配置启动

  • 点击右上角的启动按钮启动项目

在这里插入图片描述

3、创建APP

(1)方式一:命令行

  • 打开终端

在这里插入图片描述

  • 执行命令
python .\manage.py startapp app01 

在这里插入图片描述

如果创建出现错误请看最下面的问题补充

(2)方式二:借助工具

  • 找到 Tools —> Run manage.py Task

在这里插入图片描述

  • 并没有结束哦,请继续下面的操作

4、注册APP

  • 创建APP后,如果想使用相关的功能,必须将创建的APP注册到配置文件中
  • 即在settings中加入下述内容
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 这个app01是第一步创建Django项目的时候自动注册的'app01.apps.App01Config',  # 找到对应的配置内容中,加入当前新创建的APP的名字'app02'
]
  • 这样一个完整的Django项目就实现了
  • 注意:自动注册的只有一次,后面创建的不可能自动注册,只能手动注册

五、Django项目文件介绍

1、Django空项目

├── Django项目名       # 整体项目名├── db.sqlite3      # Django默认的db数据库,sqlite3├── manage.py				# Django的服务控制文件,所有的Django命令都是基于manage.py 来执行的└── mysite					# 项目名├── __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项目名

    • 这是您为该项目创建时指定的名称,比如 “mysite”。
    • 每个Django项目都有一个唯一的名称,并且在整个项目目录下作为顶级目录存在。
  • db.sqlite3

    • 这是Django默认使用的SQLite数据库文件。
    • SQLite是一个轻量级的关系型数据库管理系统,无需服务器运行,所有数据存储在一个文件中。
    • 在这个项目中,SQLite被用作开发阶段的数据存储和本地测试环境的默认选项。
  • manage.py

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

    • __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项目

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

六、补充 Django框架中应用的概念

  • 在Django框架中,应用程序(Application)是组织和管理项目代码的基本单元。
  • 它不仅包含了与特定业务逻辑相关的模型、视图、模板以及URL配置,还可能包括 forms、signals、中间件、管理后台等组件,实现了项目的模块化设计。

1、介绍

  • Django框架就像是一个高度模块化的操作系统,为开发者提供了基础设施和服务,如数据库连接、认证授权、请求处理等。

2、比喻

(1)大学与学院

  • Django框架相当于是一所大学,应用相当于是大学里面的各个学院
    • 大学相当于是个空壳子
      • 负责提供环境
    • 学院才是一个个真正具备特定功能的集合

(2)操作系统与服务

  • 每个应用就像是操作系统中的一个进程或服务,负责处理特定领域的任务和数据操作。
  • 用户应用(user)关注用户的注册、登录、权限管理等功能;
  • 订单应用(order)主要处理商品购买、订单状态跟踪、支付确认等相关事务;
  • 商品应用(goods)专注于商品信息管理、分类展示、搜索推荐等功能;
  • 后台管理应用(backend)则通常包含对系统设置、数据统计、权限控制等方面的集中管理和维护。

3、示例

  • 使用django写一个淘宝,淘宝里面有很多功能模块
  • 我们应该先创建一个空的django项目然后根据功能的不同创建不同的应用
  • django项目
应用名业务
user用户相关业务:管理用户账户信息(账号、密码、角色、权限)、用户行为记录、消息通知等
order订单相关业务:负责订单生成、订单详情展示、订单状态变更、支付接口调用、物流追踪及订单评价等
goods产品相关业务:包括商品分类管理、商品详情展示、库存管理、商品评论、浏览记录等
promotion促销相关业务:针对促销活动的规划、优惠券发放、满减规则设置、折扣计算等;
category商品类别业务:用于商品类别树的构建、导航菜单设置、新品上架、热门推荐等;
logistics物流相关业务:对接物流公司API以获取物流信息、快递单号追踪等功能;
statistics数据分析相关业务:收集并分析平台各项运营数据,如访问量、转化率、客单价等,为决策提供支持;

七、相关问题补充

1、Django 版本对应的 Python 版本

在这里插入图片描述

如果你的django项目出现了此问题,并且搜寻了大量的博客寻求解决并仔细检查过自己的虚拟环境、系统环境之后确定安装了django,却还是出现此问题

在这里插入图片描述

问题是python版本和Django版本不兼容,需要安装自己对应的Django版本。

2、命令行和pycharm创建的配置文件的区别

  • 命令行创建不会自动有templates文件夹,需要自己手动创建

  • 而pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径

# pycharm创建
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR / 'templates']     }
]# 命令行创建
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': []     }
]
  • 也就意味着你在用命令创建Django项目的时候不单单需要创建

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

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

相关文章

【Redis】Redis 非关系型数据库 安装、配置、使用(全集)

目录 Redis 第一章 1、什么是redis 2、安装redis 1-7 8 3、redis使用 第二章 1、redis的使用 1、使用方式 2、使用Java代码使用redis 3、优化连接redis 2、五种数据类型 常用命令 string hash list set zset 不同数据类型存、取、遍历的方法 3、redis在项目…

Redis网络部分相关的结构体2 和 绑定回调函数细节

目录 1. struct connection ConnectionType属性 创建connection 2. struct client 3. 绑定客户端回调函数的流程 3.1. 读事件回调函数的设置 3.2. 写事件回调函数的设置 3.3. connSocketEventHandler函数 3.4. Redis5版本的设置回调函数 3.5. 个人的一些想法&#xf…

人工智能好多人都在用,那么用户画像要怎么看?

用户画像是通过对用户行为、偏好、兴趣等数据进行分析和整理,从而形成的关于特定用户群体的描述和模型。在人工智能应用中,用户画像可以起到指导个性化推荐、精准营销、产品设计等方面的作用。以下是用户画像在人工智能应用中的几个重要方面:…

汽车Type-C接口:特点与要求解析

汽车Type-C接口的需求增长 随着汽车科技的不断发展,车载电子设备的功能和数量不断增加,因此,对于汽车Type-C接口的需求也在逐渐增长。作为一种高速、多功能的连接标准,汽车Type-C接口在车载设备连接中扮演着越来越重要的角色。 …

Nginx 四层和七层代理区别、配置

四层:通过报文中的目标地址和端口,加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器,使用tcp、udp协议。 七层:"内容交换",通过报文中真正有意义的应用层内容,加上负…

Go开发者指南:`io/ioutil`库的实战应用全解

Go开发者指南:io/ioutil库的实战应用全解 概述io/ioutil函数概览ReadAllReadFileWriteFileReadDirTempFile 和 TempDir 实战技巧:使用io/ioutil进行文件操作高效读取文件文件的写入操作处理大文件的策略使用TempFile和TempDir管理临时文件 高级应用结合o…

【Leetcode】377. 组合总和 Ⅳ

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 给你一个由 不同 整数组成的数组 n u m s nums nums,和一个目标整数 t a r g e t target target 。请你从 n u m s nums nums 中找出并返回总和为 t a r g e t targ…

leetcode-二叉搜索树与双向链表-89

题目要求 思路 1.观察给的用例&#xff0c;本质上是把数据按照中序遍历连接起来 2.将结点以中序遍历的方式插入到数组中&#xff0c;注意这里是vector<TreeNode*> 3.将数组中的数据连接起来 代码实现 /* struct TreeNode {int val;struct TreeNode *left;struct TreeN…

基于昇腾AI 使用AscendCL实现垃圾分类和视频物体分类应用

现如今&#xff0c;人工智能迅猛发展&#xff0c;AI赋能产业发展的速度正在加快&#xff0c;“AI”的需求蜂拥而来&#xff0c;但AI应用快速落地的过程中仍存在很大的挑战&#xff1a;向下需要适配的硬件&#xff0c;向上需要完善的技术支持&#xff0c;两者缺一不可。 基于此&…

去雾笔记-Pixel Shuffle,逆Pixel Shuffle,棋盘效应,转置卷积

文章目录 1.Pixel Shuffle2.Inverse Pixel Shuffle3.棋盘效应4.转置卷积5.宽激活块6.PSPNet7.反射填充层&#xff08;Reflective Padding Layer&#xff09;8.tanh层 1.Pixel Shuffle Pixel Shuffle是一种用于图像超分辨率的技术&#xff0c;它通过重新排列图像的像素来增加图…

树莓派学习笔记--Wiring Pi库的安装

前言 在刚开始学习树莓派的时候&#xff0c;新版本操作系统与旧版本有一定的区别&#xff0c;就导致跟着网上的教程来出现了很多问题&#xff0c;然后网上新操作系统的教程又很少&#xff0c;就导致前些时间学习一直没有进展。最近终于是把这些问题解决了。所以记录下来这些东西…

MySql篇

索引 B-树 定义&#xff1a; 1、根节点至少包含两个孩子 2、每个节点最多包含m个孩子(m > 2)&#xff0c;m为树的深度 3、除了根节点和叶子节点&#xff0c;其他节点至少有ceil(m/2)个孩子&#xff0c;ceil函数为取上限&#xff0c;例如ceil(1.2)2&#xff0c;就是小数位…

游戏新手村18:游戏广告渠道与广告形式

上文我们说到&#xff0c;渠道为王&#xff0c;渠道可以为我们带来流量和用户&#xff0c;进而带来收入。我们可以通过哪些渠道导入用户呢&#xff1f;每个渠道有哪些优劣呢&#xff1f;在进行游戏营销推广的时候我们该如何选择呢&#xff1f; 根据付费性质&#xff0c;我们可…

Pytorch迁移学习训练病变分类模型

划分数据集 1.创建训练集文件夹和测试集文件夹 # 创建 train 文件夹 os.mkdir(os.path.join(dataset_path, train))# 创建 test 文件夹 os.mkdir(os.path.join(dataset_path, val))# 在 train 和 test 文件夹中创建各类别子文件夹 for Retinopathy in classes:os.mkdir(os.pa…

【Windows】达芬奇19安装教程

DaVinci Resolve Studio是一个结合专业的8k编辑、颜色混合、视觉效果和音频后期制作的软件。只需点击一下&#xff0c;你就可以立即在编辑、混音、特效和音频流之间切换。此外&#xff0c;达芬奇是一个多用户协作的解决方案&#xff0c;使编辑、助理、色彩学家、视觉效果设计师…

OS复习笔记ch4

引言 上一章&#xff0c;我们学习了进程的相关概念和知识&#xff0c;不知道小伙伴们的学习进度如何&#xff0c;没看的小伙伴记得去专栏看完哦。 线程从何而来 我们之前说过&#xff0c;进程是对程序运行过程的抽象&#xff0c;它的抽象程度是比较高的。 一个进程往往对应一…

C++:静态成员变量和静态成员方法

静态成员变量 C中的静态成员变量是属于类而不是类的实例的变量。这意味着无论创建了多少个类的实例&#xff0c;静态成员变量都只有一个副本&#xff0c;并且可以被所有类的实例共享。 让我们来看一个示例&#xff1a; class RolePlayer { public://静态成员变量static int …

值得让英伟达CEO黄仁勋亲自给OpenAI配送的AI服务器!一文带你了解算力,GPU,CPU!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

怎么办,孟德尔随机化连锁不平衡跑不了!这里有本地连锁不平衡分析方法

大家都知道&#xff0c;孟德尔随机化很大程度依赖于国外的服务器。 最近我们发现孟德尔随机化常用的TwoSampleMR包的clump函数经常报错&#xff0c;这是由于服务器访问人群超时造成的现象&#xff0c;当线上版本失效。 很多人做孟德尔随机化&#xff0c;就卡在clump上。 于是我…

OpenStack云计算(十)——OpenStack虚拟机实例管理,增加一个计算节点并进行实例冷迁移,增加一个计算节点的步骤,实例冷迁移的操作方法

项目实训一 本实训任务对实验环境要求较高&#xff0c;而且过程比较复杂&#xff0c;涉及的步骤非常多&#xff0c;有一定难度&#xff0c;可根据需要选做。可以考虑改为直接观看相关的微课视频 【实训题目】 增加一个计算节点并进行实例冷迁移 【实训目的】 熟悉增加一个…