Django基础配置

news2024/11/24 22:17:35

一.前言

前面我们说完了前端基础,现在我们开始讲后端框架了,我们今天说的是django,当然今天主要还是和大家了解一下框架和django的基础配置

二.web框架

2.1 web框架初始

在我们学习web框架的时候,我们首先得了解到web框架的本质,我们先和大家来回忆一下socket和http协议,这里前面都和大家讲过,这里给出链接地址,大家去看看

python之网络编程(socket)_python socket-CSDN博客文章浏览阅读2.7k次,点赞16次,收藏43次。今天我们就讲完这么多了,本来想和大家讲一个文件的上传和下载的,但是发现讲不完根本讲不完,大家可以自己练习试试。_python sockethttps://blog.csdn.net/weixin_74178589/article/details/141186919?spm=1001.2014.3001.5501HTTP协议-CSDN博客文章浏览阅读1.1k次,点赞27次,收藏12次。这个概念在前面讲socket的时候和大家提到过,但是到这里我还是会和大家提一提web网页,我们都不陌生,相信大家都有使用web浏览上网的。那么,学习制作网页前,我们需要清晰哪些概念,准备哪些工具呢?接下来,我们要先了解下。在日常生活中,我们都会上网,或聊天、或阅读、或购物等,浏览很多的网站,而网站就是由网页组成。在互联网中,软件系统体系分两大结构:CS模式C/S 就是Client/Server 的缩写,是客户端和服务器架构。早期的软件系统多数是C/S结构的设计标准。https://blog.csdn.net/weixin_74178589/article/details/142315167?spm=1001.2014.3001.5501 

这里重要的也就是这个socket,我们当时写的http其实就是一个最简单的web框架,所有的python的框架都是基于这个代码所组成的,而在http协议的时候,我们当时需要加上http协议的标识,浏览器才能正常拿到数据,我们返回拿到的数据还都是按照http的格式返回的,如果用原生的socket写后端会发现很麻烦,而我们web框架就是干处理数据等事情

我们常见的框架有django、flask、tornado、sanic、fastapi..

所以说我们web应用程序都是由三部分构成的

用户网络通信的socket ,web框架,业务开发 ,其中业务开发是站在框架的基础上的

以djano为例,socket部分由wsgiref模块、uwsgi、daphne实现

以flask为例,socket部分由werkzurg、uwsgi、...实现

2.2 各框架的区别

内部集成功能的多少

  • django,内部提供了很多组件。 【相对大】

  • flask、tornado、sanic、fastapi... 本身自己功能很少+第三方组件。【相对小】

同步框架 vs 异步非阻塞

  • 异步非阻塞:tornado、sanic、fastapi、django

  • 同步:django、flask、bottle、webpy..  

但是其中django的异步支持的不是很好

三.快速上手django

3.1 安装

pip install django==3.2  

因为我们说的版本是3.2的,所以我们安装的是3.2的django 

3.2 命令行

cd 指定目录
django-admin startproject 项目名

这样我们就成功创建了django项目,这是目录的功能

mysite
├── manage.py              [项目的管理工具]  
└── mysite
    ├── __init__.py
    ├── settings.py        【配置文件,只有一部分。程序启动时,先读取django内部配置,再读settings.py】
    ├── urls.py               【主路由,在里面编写  /xxx/xxx/xxx ---> index 】
    ├── asgi.py            【异步】
    └── wsgi.py            【同步,主】 

编写urls.py的代码

运行

cd 项目
python manage.py runserver
python manage.py runserver 127.0.0.1:8000
python manage.py runserver 127.0.0.1:9000 

这样我们也就启动了

 app概念

cd 项目
python manage.py startapp 名字

 

mysite
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── web
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py  【ORM,基于models可以对数据库进行简便的操作】
    ├── tests.py
    └── views.py    【视图函数】 

我们现在先了解这么多,以后遇到了会和大家具体说,app的作用其实就是让功能分开

3.2 pycham创建 

django-admin startproject 项目名称

cd 项目目录
python manage.py startapp
python manage.py runserver

但是这样创建确实很方便,但是这样创建的是最新版本的,一会教大家创建指定版本的

四.创建指定版本

4.1 创建项目

先创建一个虚拟环境的项目,然后安装diango指定版本的,然后安装django

pip install django==3.2

然后终端输入

django-admin syartproject study01 . 

注意一定要加上.这样就和原来django对应上了,项目下面一个文件夹 

 

再点击这里 

  

 

这样就配置好就可以直接运行了

4.2 创建app

这里推荐创建app先创建一下apps文件夹和你要创建app的名字的文件夹,再把app创建进去,这样就不会在根目录看着比较难受了

再把这个改成apps.web,就ok了

4.3 纯净版django 

我们把设置里的这些屏蔽了,也就是一个纯净版的了

五.总结 

今天说了很多配置,其实都是简单东西,这里给大家总结一下

重要的三个命令

django-admin startproject 项目名称    //创建项目 如果要创建指定版本那就在后面加个.  

python manage.py startapp app名称  //创建app

python manage.py runserver  //运行项目

总的来说都是配置的东西,不记得来看一下就行了

六.补充 

下一期将会讲django的基础知识点,主要是说路由和视图 

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

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

相关文章

Keepalived部署

Keepalived部署 安装配置单VIP模式配置master节点查看节点IP信息配置 keepalived.conf启动且加入开机自启查看是否生效 配置backup节点配置 keepalived.conf启动且加入开机自启查看是否生效 主备测试 多VIP配置 keepalived.conf查看IP 安装 dnf install -y keepalived配置 单…

Oracle JDK(通常简称为 JDK)和 OpenJDK区别

Java 的开发和运行时环境主要由两种实现主导:Oracle JDK(通常简称为 JDK)和 OpenJDK。尽管它们都基于同一个代码库,但在一些关键点上有所区别。以下是详细的对比: 1. 基础代码 Oracle JDK: 基于 OpenJD…

qt+opengl 三维物体加入摄像机

1 在前几期的文章中,我们已经实现了三维正方体的显示了,那我们来实现让物体的由远及近,和由近及远。这里我们需要了解一个概念摄像机。 1.1 摄像机定义:在世界空间中位置、观察方向、指向右侧向量、指向上方的向量。如下图所示: …

ASCB1系列APP操控末端回路智能微断 物联网断路器 远程控制开关 学校、工厂、农场、商业大楼等可用

安科瑞戴婷 Acrel-Fanny ASCB1系列智能微型断路器是安科瑞电气股份有限公司全新推出的智慧用电产品,产品由智能微型断路器与智能网关两部分组成,可用于对用电线路的关键电气因素,如电压、电流、功率、温度、漏电、能耗等进行实时监测&#x…

JMeter监听器与压测监控之 InfluxDB

1. 简介 在本文中,我们将介绍如何在 Kali Linux 上通过 Docker 安装 InfluxDB,并使用 JMeter 对其进行性能监控。InfluxDB 是一个高性能的时序数据库,而 JMeter 是一个开源的性能测试工具,可以用于对各种服务进行负载测试和性能监…

[安洵杯 2019]iamthinking-parse_url绕过thinkphp6.0反序列化

/www.zip下载源码 查看序列化点&#xff0c;index.php <?php namespace app\controller; use app\BaseController;class Index extends BaseController {public function index(){echo "<img src../test.jpg"."/>";$paylaod $_GET[payload];i…

解决CondaError: argument COMMAND: invalid choice: ‘activate‘

自上篇系统重装后&#xff0c;Anaconda重新导入后终端进入conda环境报错&#xff1a; conda-script.py: error: argument COMMAND: invalid choice: ‘activate’ C:\Windows\system32>conda activate xin usage: conda-script.py [-h] [--no-plugins] [-V] COMMAND ... …

【CSS3】Flex弹性布局

文章目录 前言一、基本概念1.容器和项目&#xff1a;2.主轴和交叉轴&#xff1a; 二、容器属性1.flex-direction&#xff1a;决定主轴的方向&#xff0c;即x轴还是y轴2.flex-wrap&#xff1a;定义项目的换行方式3.flex-flow&#xff1a;flex-direction属性和flex-wrap属性的简写…

简述C++map容器

pair键值对 std::pair在很多关联容器&#xff08;如std::map、std::multimap、std::set、std&#xff1a;multiset等&#xff09;中被广泛应用。以std::map为例&#xff0c;std::map是一个键值对的容器&#xff0c;其中每个元素都是一个std::pair&#xff0c;键用于唯一标识元…

刷题计划 day22回溯(一)【组合】【组合总和 III】【电话号码的字母组合】

⚡刷题计划day22 回溯&#xff08;一&#xff09;开始&#xff0c;此期开启回溯专题&#xff0c;敬请期待关注&#xff0c;可以点个免费的赞哦~ 往期可看专栏&#xff0c;关注不迷路&#xff0c; 您的支持是我的最大动力&#x1f339;~ 目录 回溯算法理论基础 回溯法解决的…

Qt桌面应用开发 第六天(鼠标事件 定时器事件 定时器类 事件分发器 事件过滤器)

目录 1.1鼠标进入和离开enterEvent\leaveEvent 1.2鼠标按下释放和移动mousePressEvent\mouseReleaseEvent\mouseMoveEvent 1.3定时器事件timerEvent 1.4定时器类QTimer 1.5事件分发器event 1.6事件过滤器eventFilter 1.1鼠标进入和离开enterEvent\leaveEvent 事件&#x…

【Linux清空显存占用】Linux 系统中清理 GPU 显存

操作指令 # 查看NVIDIA GPU状态和进程 nvidia-smi # 查找所有包含"python"的进程 ps -ef | grep python # 强制结束进程号为3023的进程 kill -9 3023截图演示 在 Linux 系统中清理 GPU 显存可以采用以下方法&#xff1a; 1. 终止特定进程&#xff08;常用方法&…

对撞双指针(七)三数之和

15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组…

vue2-基础核心

vue简介 动态构建用户界面的渐进式 JavaScript 框架 vue的特点: 遵循MVVM模式 采用组件化模式&#xff0c;提高代码复用率&#xff0c;让代码更好维护 声明式编码&#xff0c;无需直接操作DOM&#xff0c;提高开发效率&#xff0c;编码简洁、体积小&#xff0c;运行效率高 本…

Prompting LLMs to Solve Complex Tasks: A Review

文章目录 题目简介任务分解未来方向结论 题目 促使 LLM 解决复杂任务&#xff1a; 综述 论文地址&#xff1a;https://www.intjit.org/cms/journal/volume/29/1/291_3.pdf 简介 大型语言模型 (LLM) 的最新趋势显而易见&#xff0c;这体现在大型科技公司的投资以及媒体和在线社…

反射、依赖注入

特性和依赖注入都是基于反射的&#xff0c;同时反射一般和接口配合着使用。 接口隔离原则 接口隔离原则&#xff1a;主张应该把客户端对一个类的需求分解成更小、更具体的接口&#xff0c;而不是提供一个包含所有功能的大接口。 接口中的需求是&#xff1a;乙方不能少给&am…

MT8768/MTK8768安卓核心板性能参数_联发科安卓智能模块开发方案

MT8768安卓核心板 是一款采用台积电12nm FinFET制程工艺的智能手机芯片。MT8768核心板不仅提供所有高级功能和出色体验&#xff0c;同时确保智能终端具备长电池寿命。该芯片提供了一个1600x720高清(20:9比例)分辨率显示屏&#xff0c;排除了清晰度和功耗之间的平衡问题。该芯片…

VBA技术资料MF229:以毫米为单位设置行高和列宽

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

深入JMeter核心引擎:揭秘JmeterEngine、StandardJmeterEngine、ClientJmeterEngine与Remote的奥秘

引言 Apache JMeter是一款广泛使用的开源性能测试工具&#xff0c;它能够帮助开发者和测试人员模拟大量并发用户对应用程序进行负载测试。JMeter的强大功能和灵活性源于其精心设计的核心引擎。本文将深入探讨JMeter的核心引擎&#xff0c;包括JmeterEngine、StandardJmeterEng…

软件工程导论 选填题知识点总结

一 原型化方法是一种动态定义需求的方法&#xff0c;提供完整定义的需求不是原型化方法的特征&#xff0c;其特征包括尽快建立初步需求、简化项目管理以及加强用户参与和决策。 软件危机的表现包括用户对已完成的软件系统不满意的现象经常发生、软件产品的质量往往靠不住、软件…