Django 框架

简介

Django 是一个由Python编写的一个开放源代码的Web应用框架。使用Django,只要很少的代码,Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。

Django 遵循MVC(Model - View - Controller)架构,但在Django中更常被称为MTV(Model - Template - View)。
*

复制代码
###### 内置功能

|   功能    |           说明           |
|---------|------------------------|
| Admin后台 | 自动生成管理界面,无需手动编写CRUD逻辑。 |
| ORM     | 用Python类操作数据库,无需写SQL   |
| 表单处理    | 内置表单验证,防止CSRF攻击。       |
| 用户认证    | 提供登录,注册,权限管理           |
| 路由系统    | URL映射灵活,支持正则表达式        |
| 缓存机制    | 支持Memcached,Redis等后端   |
复制代码
###### MVC 与MTV模型

**MVC(Model - View - Controller)**
* Model(模型):**处理与数据的交互**,定义数据的结构和业务逻辑。

* View(视图):**负责数据展示**,生成用户看到的HTML页面。

* Controller(控制器):接收用户请求,调用Model处理数据,并将结果传递给View渲染页面。

  **流程:**
* 用户发送请求到Controller。

* Controller处理逻辑,调用Model获取数据。

* Controller将数据传递给View。

* View渲染并返回HTML页面给用户。

**MVT(Model-Template-View) ------ Django的实现方式**

Django中采用了MTV设计模式
* Model(模型):**与数据库交互**,处理数据的创建,读取,更新,删除。
* Template(模板):**负责页面渲染**,生成最终的HTML内容。
* View(视图):Django的View更偏向于控制器的角色,接收请求并决定使用哪个模板和数据。

**流程:**
* 用户访问URL,请求被Django的urls.py映射到相应的View。
* View 处理业务逻辑,调用Model获取数据。
* View将数据传递给Template。
* Template渲染HTML,最终返回给用户。
复制代码
###### 适用场景

适合用Django的项目:
* 内容管理系统(CMS)(如新闻网站,博客)
* 社交平台(用户系统,动态发布)
* 电子商务网站(订单管理,支付集成)
* API后台
安装

安装 Django框架

python 复制代码
pip install Django

安装完成后,可以通过过以下命令验证Django是否安装成功;

python 复制代码
python3 -m django --version
创建项目
复制代码
###### 使用命令行创建项目

```python
django-admin startproject 项目名称
```
复制代码
###### 使用PyCharm创建项目

```python
file ---> new project ---- 选择Django ---> 配置路径和项目名称 ---> 配置环境(默认用系统环境) ----> 点击create(完成创建)
```
复制代码
###### 项目目录介绍

```python
#settings.py - > 项目配置相关
#urls.py - > url路径
#manage.py - > 管理相关 
```
复制代码
###### 创建应用

```python
在Terminal中输入Python manage.py startapp 应用名
```
复制代码
###### 运行项目

```python
python3 manage.py runserver
manage.py runserver 80
```
相关推荐
洋不写bug8 小时前
二叉树(四)经典算法题目解析,公共祖先,二叉树构造,非递归遍历
数据库·算法·二叉树·二叉树构造·公共祖先
凯子坚持 c8 小时前
如何在教育平台中嵌入在线文档编辑组件:ONLYOFFICE Docs从部署到功能全验证
数据库·onlyoffice
SelectDB8 小时前
Apache Doris 选型实操:4 个维度 Checklist 与验证要点
大数据·数据库·掘金技术征文
SelectDB8 小时前
Apache Doris 高并发点查与实时写入笔记:一套引擎统一实时数仓与在线服务
大数据·数据库·数据分析
李白客8 小时前
时序数据库入门:什么是 TSDB?时序库与关系型数据库对比、主流产品选型指南(2026)
数据库·oracle·时序数据库
SelectDB8 小时前
Apache Doris 存算分离实操:从对象存储接入到多计算集群配置(附 SQL)
大数据·数据库·数据分析
SelectDB9 小时前
Apache Doris 多表 Join 优化实战:从 CBO 到 Colocate Join 配置(附 SQL)
大数据·数据库·数据分析
tachibana29 小时前
什么是 Function Calling ?
数据库·人工智能·ai·llm·agent
全栈弄潮儿²⁰²⁴9 小时前
AI Agent 开发实战(7):如何接入搜索和数据库工具?
数据库·人工智能·ai·chatgpt·oracle·agent·ai编程
砚底藏山河9 小时前
并发与限频工程:把20只的2秒压到0.5秒不封号(魔码量化实战 #03)
java·开发语言·数据库·python·金融