Django开发之初识篇

news2024/11/22 9:57:34

Django初识篇

  • 前言
  • 一、Django 框架介绍
  • 二、Django 项目初始化
    • 方式一:Windows通过CMD创建并初始化项目
    • 方式二:Pycharm
  • 总结


前言

通过Django初识篇、基本篇、进阶篇来学习Django,并能快速开发一个中型的Web网站。

一、Django 框架介绍

Django 是一个用于构建 Web 应用程序的高级 Python Web 框架。它由一个用于快速开发可维护和可扩展的 Web 应用程序的一组组件和工具组成。以下是 Django 框架的一些关键特点和组成部分:

  1. 高级 Web 开发:Django 提供了一种高级的开发方式,使开发人员能够更专注于应用程序的功能而不是底层的 Web开发任务。这有助于提高开发效率。

  2. ORM(对象关系映射):Django 提供了一个强大的 ORM,允许开发人员使用 Python 类来定义数据库模型,而不需要编写 SQL查询。这使得数据库交互变得更加抽象和方法。

  3. MVC 架构:Django 遵循经典的 MVC(模型-视图-控制器)架构模式,但在 Django 中通常被称为MTV(模型-模板-视图)。这有助于将应用程序的不同组成部分分离开来,使代码更易于维护。
    在这里插入图片描述

  4. 自带管理后台:Django自带一个强大的管理后台,开发人员可以使用它来轻松管理应用程序的数据,包括创建、读取、更新和删除操作(CRUD)。

  5. 安全性:Django 对安全性非常重视,提供了一系列内置的安全性功能,如防止常见的 Web攻击,如跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。

  6. URL 路由:Django 使用 URL 映射来定义应用程序的不同页面和功能,使得 URL 结构清晰可读,并且易于维护。

  7. 自动化测试:Django 支持自动化测试,开发人员可以轻松编写单元测试和集成测试,以确保应用程序的稳定性和可靠性。

  8. 多语言支持:Django 提供了多语言和国际化支持,使得开发多语言应用变得更加容易。

  9. 社区和扩展:Django 拥有一个活跃的社区,提供了大量的扩展和第三方应用程序,可以帮助开发人员加速开发过程。

二、Django 项目初始化

目录结构

│─ manage.py    # 终端脚本命令,提供了一系列用于生成文件或者目录的命令,也叫脚手架
└─ dome/        # 主应用开发目录,保存了项目中的所有开发人员编写的代码, 目录是生成项目时指定的- asgi.py      # django3.0以后新增的,用于让django运行在异步编程模式的一个web应用对象- settings.py  # 默认开发配置文件- urls.py      # 路由列表目录,用于绑定视图和url的映射关系- wsgi.py      # wsgi就是项目运行在wsgi服务器时的入口文件,相当于manage.py- __init__.py

方式一:Windows通过CMD创建并初始化项目

  1. 创建虚拟环境并激活
    ○ 切换到桌面下 cd Desktop
    ○ 创建虚拟环境目录 md TestEnv
    ○ 创建虚拟环境_Test python -m venv _Test
    ○ 进入到Scripts目录下 cd Scripts
    ○ 激活虚拟环境 activate

  2. 安装 Django:如果你还没有安装 Django,首先需要在你的开发环境中安装它。你可以使用 pip 包管理器执行以下命令来安装 Django:

     pip install Django ==3.2
    
  3. 创建项目并启动
    ○ 回到TestEnv 目录 cd …/…/
    ○ 创建demo项目 django-admin startproject demo
    ○ 进入demo项目,启动项目
    ■ cd demo
    ■ python manage.py runserver

  4. 访问项目地址 http://127.0.0.1:8000/
    在这里插入图片描述

方式二:Pycharm

  1. 打开 PyCharm:首先确保你已经安装了 PyCharm 并成功启动它。
  2. 创建新项目:在 PyCharm 的启动页面或顶部菜单中,选择 “File”(文件)> “New Project”(新建项目)。
  3. 选择项目类型:在新建项目向导中,选择 “Django” 作为项目类型。如果没有直接看到 “Django” 选项,可以搜索框中输入 “Django” 来快速找到。
  4. 配置项目信息:在下一步中,配置项目的名称和位置。你可以选择项目的根目录并为项目命名。确保选择合适的 Python 解释器,然后点击 “Create”(创建)按钮。
  5. 配置 Django 设置:一旦项目创建成功,PyCharm 会提示你配置 Django 设置。你可以选择使用默认配置,也可以手动配置数据库、应用程序等设置。点击 “OK”(确定)按钮。
  6. 创建虚拟环境(可选):PyCharm 通常会建议你创建一个虚拟环境来隔离项目的依赖。你可以根据需要选择是否创建虚拟环境。
  7. 运行开发服务器:最后,你可以使用以下命令启动 Django 开发服务器:
    python manage.py runserver
    开发服务器将在默认端口8000上运行。你可以在浏览器中访问 http://127.0.0.1:8000/ 来查看你的 Django 项目。

总结

Django的优点和缺点有哪些?
Django的优点
● 功能完善、要素齐全:自带大量企业Web开发常用工具和框架(比如分页,auth,权限管理), 适合快速开发企业级网站。
● 完善的文档:经过十多年的发展和完善,Django有广泛的实践案例和完善的在线文档。开发者遇到问题时可以搜索在线文档寻求解决方案。
● 强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习SQL语言即可对数据库进行操作。
● Django先进的App设计理念: App是可插拔的,是不可多得的思想。不需要了,可以直接删除,对系统整体影响不大。
● 自带台管理系统admin:只需要通过简单的几行配置和代码就可以实现一个完整的后台数据管理控制平台。

Django的缺点
● 大包大揽: 对于一些轻量级应用不需要的功能模块Django也包括了,不如Flask轻便。
● 过度封装: 很多类和方法都封装了,直接使用比较简单,但改动起来就比较困难。
● 性能劣势: 与C, C++性能上相比,Django性能偏低,当然这是python的锅,其它python框架在流量上来后会有同样问题。
● 模板问题: django的模板实现了代码和样式完全分离,不允许模板里出现python代码,灵活度对某些程序员来说可能不够。

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

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

相关文章

【IEEE会议征稿】第三届IEEE电气工程与控制科学国际学术会议(IC2ECS 2023)

第三届IEEE电气工程与控制科学国际学术会议(IC2ECS 2023) 2023 3rd International Conference on Electrical Engineering and Control Science 第三届电气工程与控制科学国际学术会议 (IC2ECS 2023) 定于2023年12月1日在中国杭州召开。会议主要围绕“…

【RHAL】板子烧widevine key

前言:国庆回来工作后很懵逼…又遇见了新问题,因为旧板子烧坏了,新板子系统没带widevine key,我用旧板子命令烧pass,新板子apk烧就fail。 又接触到了新的领域,新名词。不错的,甲方乙方一起带我学…

Flink---13、容错机制(检查点(保存、恢复、算法、配置)、状态一致性、端到端精确一次)

星光下的赶路人star的个人主页 大鹏一日同风起,扶摇直上九万里 文章目录 1、容错机制1.1 检查点(CheckPoint)1.1.1 检查点的保存1.1.2 从检查点恢复状态1.1.3 检查点算法1.1.3.1 检查点分界线(barrier)1.1.3.2 分布式快…

elasticsearch基本语法

这里写自定义目录标题 elasticsearch简介基本语法索引创建索引修改索引删除索引 查询简单查询精确查询条件查询范围查询:聚合查询:排序和分页: 参考文献: elasticsearch简介 Elasticsearch 是一个开源的分布式搜索和分析引擎&…

地震勘探——相关概念(一)

地震波的基本介绍 波前:波在同一时刻所到达的点所构成的面,这个面上构成的相位是相同的。波前的形状取决于传播介质的物理性质。我们可以用地震波动方程模拟波前变化(波场快照)。 射线(Ray):是…

java API 包装类Integer,int和String互相转换

integer类 package daysreplace;import com.sun.jdi.IntegerValue;import java.util.Arrays;public class Test {public static void main(String[] args) { //Integer a new Integer(29);//过时Integer b new Integer("30");//过时System.out.println(a);System.o…

matplotlib制图初级篇

做任何的报表分析,最后是达到可视化的目的。 全部都是一堆数字,那肯定不是一个合格的数据报表制作分析人员: 需求:根据excel表,生成折线图、柱状图和饼状图 1、pandas读取数据 说明:本机的运行环境为mac…

碰撞检测 Neon优化

1、碰撞检测 碰撞检测的原理,两个圆心距离d <= r1 + r2即发生碰撞, 对于下图这种,d的计算方法即为余弦定理 2、Neon优化 这段代码过于简单直接使用neon intrinsic编写 #include <arm_neon.h> #include <stdio.h>struct circle {

雷电模拟器在打开“指针位置“后,无效,没有指针xy轴坐标显示?(解决方法)

解决方法&#xff1a;雷电模拟器我甘霖娘***(不是 1. 打开"指针位置" 2. 右击雷电模拟器图标 - 打开文件所在位置 - 找到vms文件目录并进入 3. 新建名为debug的txt文件 4. 重启雷电模拟器 5. 已解决

Day08-面向对象

1. 类和对象 1.1 类和对象的理解 客观存在的事物皆为对象 &#xff0c;所以我们也常常说万物皆对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型&#xff0c;类是具有相同属性和行为的一组对象的集合 简单理解&#xff1a;类就是…

集睿致远CS5518国产MIPI转LVDS 点屏方案芯片可pin to pin替代国腾GM8775C

CS5518是一款MIPI DSI输入与1或2Port LVDS输出转换芯片。Pin to Pin替换GM8775C&#xff01;MIPI DSI最多支持4Lane&#xff0c;1Lane最大运行速率为1Gbps。LVDS支持18或24位像素&#xff0c;25MHz至154MHz&#xff0c;支持VESA或JEIDA格式。单路1.8V供电方式&#xff0c;可选配…

使用VisualStudio制作上位机(补充)

使用VisualStudio制作上位机(补充) Author:YAL 这一部分,主要是补充CAN发送的实现。大概的思路是在主界面上,通过点击“VIN读写”然后弹出发送界面,用户在该界面填上信息后,点击就发送一次。当然这仅仅是一个例程,大家可以根据自己的需求来做。 先新建一个窗体,用于填…

诺贝尔奖(Nobel Prize)2023——生理/医学奖

诺贝尔奖&#x1f3c6;&#xff08;Nobel Prize&#xff09;2023——生理/医学奖 2023年10月2日颁布了诺贝尔生理学/医学奖&#xff08;Nobel Prize in Physiology or Medicine&#xff09;&#xff0c;Katalin Karik&#xff08;卡塔琳考里科&#xff09;和Drew Weissman&…

如何实现 Es 全文检索、高亮文本略缩处理

如何实现 Es 全文检索、高亮文本略缩处理 前言技术选型JAVA 常用语法说明全文检索开发高亮开发Es Map 转对象使用核心代码 Trans 接口&#xff08;支持父类属性的复杂映射&#xff09;Trans 接口的不足真实项目落地效果 前言 最近手上在做 Es 全文检索的需求&#xff0c;类似于…

postman使用旧版本报错version mismatch detected后如何恢复使用

postman下载旧版本 目前作者使用10.6.0版本可以忽略登陆&#xff0c;所以可以下载此版本。 但是安装打开后会提示version mismatch detected&#xff0c;所以需要解决该办法&#xff1b; 修改文件名称 修改 C:\Users\XXX\AppData\Roaming\Postman 为 C:\Users\XXX\AppData\R…

Python接口自动化测试实战(完整版)

接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 1、接口自动化测试框架 在Python接口自动化测试中&#xff0c;我们…

Compose 编译器版本和Kotlin版本对应关系

使用了最新的kotlin版本&#xff0c;compose报错&#xff0c;不兼容&#xff0c;在这里记录一下版本对应关系 值得注意的是Compose Kotlin 编译器扩展 (androidx.compose.compiler) 未关联到 Compose 库版本。相反&#xff0c;它会关联到 Kotlin 编译器插件的版本&#xff0c;…

软件测试银行项目网上支付接口调用测试实例

公司最近有一个网站商城项目要开始开发了&#xff0c;这几天老板和几个同事一起开着需求会议&#xff0c; 讨论了接下来的业务规划和需求策略&#xff0c;等技术需求一下来还要讨论技术需求&#xff0c; 确认后再慢慢的进入开发阶段&#xff0c;趁着闲暇时间新造的人想总结一…

每日Leecode算法题:1337.矩阵中战斗力最弱的k行

方法1&#xff1a;暴力破解 class Solution:def kWeakestRows(self, mat: List[List[int]], k: int) -> List[int]:return sorted([i for i in range(len(mat))], keylambda x:sum(mat[x]))[:k] 方法2&#xff1a;二分查找排序 class Solution:def kWeakestRows(self, ma…

Windows配置ADB工具

一、目的 在进行嵌入式开发时&#xff0c;我们经常使用ADB工具登录到开发板上进行命令操作&#xff0c;本篇我们介绍如何在windows平台配置ADB环境。 二、实战 1.下载adb工具包​​​​​​​https://developer.android.com/studio/releases/platform-tools?hlzh-cnhttps://d…