当前位置: 首页 > news >正文

Django基础(一)———创建与启动

前言

从这篇文章开始,我将给大家介绍Python中的一个框架 Django

我将从基础开始一步一步带领大家深入了解Django框架并完成实战案例


一、Django是什么?

Django 是一个 免费、开源、高级 的 Python Web 框架。它的核心目标是使开发复杂的、数据库驱动的网站变得 快速、简单和安全

Django 遵循 “Don't Repeat Yourself” 的设计哲学,强调代码复用和组件化。它奉行 “包含电池” 的理念,这意味着它提供了开发 Web 应用所需的绝大多数功能,开发者无需重新发明轮子,可以直接使用或进行少量配置即可。

二、核心特性

1.快速开发: Django 的设计哲学和内置功能(如 ORM、Admin 后台、通用视图、表单处理)极大地加速了开发流程。

2.安全: Django 非常注重安全,内置了防护常见 Web 攻击的机制,例如:

  • SQL 注入防护: ORM 自动处理参数化查询。

  • 跨站脚本防护: 模板系统默认转义输出。

  • 跨站请求伪造防护: 内置 CSRF 令牌机制。

  • 点击劫持防护: 支持 X-Frame-Options。

  • 安全头部: 可方便配置安全相关的 HTTP 头。

3.可扩展性强: Django 采用松耦合的设计,各个组件(如模型、视图、模板)相对独立。它支持海量访问的架构设计,许多大型网站(如 Instagram, Pinterest, Disqus)都使用 Django。

4.功能齐全的 ORM:

  • 对象关系映射 让你用 Python 类来定义数据库模型,无需直接编写 SQL。

  • 支持多种数据库后端(PostgreSQL, MySQL, SQLite, Oracle 等),切换方便。

  • 提供强大的数据库查询 API。

  • 自动处理数据库迁移(makemigrationsmigrate)。

5.自带 Admin 后台: 只需几行代码,就能根据你的数据模型自动生成一个功能强大的后台管理界面,用于管理网站内容。这是 Django 最具标志性的特性之一,极大地方便了内容管理。

6.清晰的 MVT 架构:

  • Model: 负责数据结构和数据库交互(ORM)。

  • View: 负责业务逻辑。接收 HTTP 请求,处理数据(通常涉及 Model),然后返回 HTTP 响应(通常是一个渲染后的 Template)。

  • Template: 负责展示层(HTML)。使用 Django 的模板语言(DTL)或第三方引擎(如 Jinja2)来动态生成 HTML。

  • URL Dispatcher: 优雅的 URL 设计,通过 URL 配置(urls.py)将不同的 URL 模式映射到对应的视图函数/类。

7.强大的表单处理: 内置的表单系统简化了表单的创建、验证、处理和渲染,并与 Model 紧密结合。

8.国际化与本地化: 内置支持多语言翻译和本地化格式(日期、时间、数字)。

9.强大的社区和生态系统: 拥有庞大且活跃的社区,提供了极其丰富的第三方包(Django Packages),覆盖了几乎所有的 Web 开发需求(认证、REST API、支付、搜索、缓存等)。

10.完善的文档: Django 以其 卓越、详尽的官方文档 而闻名,对新手和资深开发者都非常友好。

三、使用 

1.安装Django

pip install django

2.创建项目

Django种项目会有一些默认的文件和默认的文件夹

终端输入 django-admin startproject 项目名称 创建新项目

Cangku
├── manage.py           [管理项目文件,例如:运行、类自动生成数据表]
└── Cangku├── __init__.py├── settings.py     [项目配置文件,例如:连接那个数据... ]├── urls.py         [根路由,URL和函数的对应关系  /x1/login ->do_login ]├── asgi.py         [异步运行项目,编写socket,处理网络请求]└── wsgi.py         [同步运行项目,编写socket,处理网络请求]

3.创建应用(app)

一个项目类似于是一个架子,但是真正起作用的还是app.在终端进入到项目所在的路径,然后执行命令,创建一个新的app

python manage.py startapp [app名称]

4.运行

通过命令行的方式:

python manage.py runserver

可以在本地访问你的网站,默认端口号是8000,这样就可以在浏览器中通过http://127.0.0.1:8000/来访问你的网站啦。如果想要修改端口号,那么在运行的时候可以指定端口号,python manage.py runserver 9000这样就可以通过9000端口来访问啦。另外,这样运行的项目只能在本机上能访问,如果想要在其他电脑上也能访问本网站,那么需要指定ip地址为0.0.0.0。示例为:python manage.py runserver 0.0.0.0:8000。

5.project与app的关系

app是django项目的组成部分。一个app代表项目中的一个模块,所有URL请求的响应都是由app来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在django的角度来看,图书,电影这些模块就是app,图书,电影这些app共同组成豆瓣这个项目。因此这里要有一个概念,django项目由许多app组成,一个app可以被用到其他项目,django也能拥有不同的app。

http://www.dtcms.com/a/279378.html

相关文章:

  • 【反转链表专题】【LeetCode206.反转链表】【LeetCode25.K个一组翻转链表】【LeetCode234.回文链表】
  • Spring Boot 自带的 JavaMail 集成
  • android Perfetto cpu分析教程及案例
  • 5G 到 6G通信技术的革新在哪里?
  • 腾讯云和火山云优劣势对比
  • 电力协议处理框架C++版(三)
  • CA-IS3082W 隔离485 收发器芯片可能存在硬件BUG
  • LTspic下载,帮助及演示电路
  • sfe_py的应力云图计算与显示step by step
  • 暑期自学嵌入式——Day02(C语言阶段)
  • 揭开图像的秘密:OpenCV直方图入门详解
  • 代数基本定理最简短的证明
  • 对于独热编码余弦相似度结果为0和词向量解决了词之间相似性问题的理解
  • ubuntu之坑(十五)——设备树
  • gRPC和http长轮询
  • 新手向:Python自动化办公批量重命名与整理文件系统
  • Dubbo 学习笔记
  • 谷歌收获成果:OpenAI收购Windsurf计划告吹
  • 工业软件加密锁复制:一场技术与安全的博弈
  • Mybatis05-参数和返回
  • 以太网供电(PoE)电源
  • 编程语言设计目的与侧重点全解析(主流语言深度总结)
  • vue中使用西瓜播放器xgplayer (封装)+xgplayer-hls 播放.m3u8格式视频
  • Spark 单机模式安装与测试全攻略​
  • STM32小实验1--点亮LED
  • # 电脑待机后出现死机不能唤醒怎么解决?
  • 【终极指南】ChatGPT/BERT/DeepSeek分词全解析:从理论到中文实战
  • 2025年人工智能与网络安全国际会议(IACAINS 2025)
  • vim扩展
  • Python Web框架对比:Flask vs FastAPI