Django-入门

news2024/11/25 20:26:49

文章目录

  • 一、Django框架介绍
  • 二、后台管理
    • 第一步:项目的创建与运行
    • 第二步:应用的创建和使用
    • 第三步: 项目的数据库模型
    • 第四步: 启用后台Admin站点管理
  • 三、前台管理
    • 第一步: URLconf 路由管理
    • 第二步: 视图函数处理业务逻辑
    • 第三步: 模板管理实现好看的HTML页面(可参考菜鸟教程)
  • 四、Django请求的生命周期


一、Django框架介绍

什么是框架?

  • 软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品,
  • 框架的功能类似于基础设施 ,提供并实现最为基础的软件架构和体系
  • 通常情况下我们依据框架来实现更为复杂的业务程序开发
  • 二个字,框架就是程序的骨架

Python 中常见的框架有哪些?

  • 大包大揽 Django 被官方称之为完美主义者的Web框架。
  • 力求精简 web.py 和 Tornado
  • 新生代微框架 Flask 和 Bottle

Django 框架介绍

  • Django是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计。
  • 由经验丰富的开发人员构建,它负责Web开发的许多麻烦,因此您可以专注于编写应用程序,而
    无需重新创建轮子。
  • 免费的和开源的。
  • 被官方称之为完美主义者的Web框架。

Django 的安装
在线安装Django,指定版本安装:pip install django==2.2

二、后台管理

第一步:项目的创建与运行

第二步:应用的创建和使用

(1) 创建第一个应用程序
在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
创建应用的命令:
python manage.py startapp bookApp
(2) 编写第一个视图函数
在这里插入图片描述
(3) 路由规则
要在 bookApp 目录中创建一个 URLconf ,创建一个名为 urls.py

在这里插入图片描述
根据配置文件 BookManage/settings 可知路由查找的主文件是 BookManage/urls.py , 因此在该文件
添加一条 url 规则
在这里插入图片描述
(4) 效果展示
启动服务器:python manage.py runserver
在这里插入图片描述

url() 函数介绍
Django url() 可以接收四个参数,分别是两个必选参数: regex 、 view 和两个可选参数:
kwargs 、 name 。

  • regex : 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。
  • view : 用于执行与正则表达式匹配的 URL 请求。
  • kwargs : 视图使用的字典类型的参数。
  • name : 用来反向获取 URL。

第三步: 项目的数据库模型

创建数据库模型
本示例完成“图书-英雄”信息的维护,需要存储两种数据:图书、英雄
(1)图书表结构设计: 表名: Book
图书名称: title
图书发布时间: pub_date
(2)英雄表结构设计: 表名: Hero
英雄姓名: name
英雄性别: gender
英雄简介: hcontent
所属图书: hbook

数据库模型基本操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第四步: 启用后台Admin站点管理

  • 站点分为“内容发布(后台管理)”和“公共访问(前台管理)”两部分
  • “内容发布”的部分负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味、缺乏创造力
    的工作。
  • 因此, Django 会根据定义的模型类完全自动地生成管理模块

Django 框架中有一个非常强大的应用功能: 自动管理界面。 常被Web平台管理者使用,去管理整个
Web平台。
默认情况下,在 settings.py 配置文件中 INSTALLED_APPS 包含以下应用程序,为了后续的开发,默
认这些应用程序都是包含在里面的。
在这里插入图片描述

(1). 数据库迁移
使用这些 Django 自带的应用程序,需要我们在数据库中创建一些数据表对应,然后才能使用它们。
python manage.py makemigrations
python manage.py migrate
(2). 创建管理员用户
/// 按提示输入用户名、邮箱、密码
python manage.py createsuperuser
启动服务器,通过 “127.0.0.1:8000/admin” 访问,输入上面创建的用户名、密码完成登录
进入管理站点,默认可以对 groups、users 进行管理
在这里插入图片描述
(3). 管理界面本地化
在这里插入图片描述
(4). 自定义模型加入后台管理
打开 bookApp/admin.py 文件,注册模型
from django.contrib import admin
from models import Book
admin.site.register(Book)
(5). 自定义管理页面
Django 提供了 admin.ModelAdmin 类
通过定义 ModelAdmin 的子类,来定义模型在 Admin 界面的显示方式
在这里插入图片描述
在这里插入图片描述
列表页属性性:
在这里插入图片描述
在这里插入图片描述
添加、修改页属性
在这里插入图片描述
在这里插入图片描述
关联对象
在这里插入图片描述
在这里插入图片描述
布尔值的显示
在这里插入图片描述

三、前台管理

第一步: URLconf 路由管理

在 Django 中,定义 URLconf 包括正则表达式、视图两部分 。
Django 使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图 。
注意:只匹配路径部分,即除去域名、参数后的字符串 。
在主配置文件中添加子配置文件,使主 urlconf 配置连接到子模块的 urlconf 配置文件 。

第二步: 视图函数处理业务逻辑

在 Django 中,视图对WEB请求进行回应( response )。
视图接收 reqeust 请求对象作为第一个参数,包含了请求的信息 。
视图函数就是一个Python函数,被定义在 views.py 中 。
定义完成视图后,需要配置 urlconf ,否则无法处理请求。
在这里插入图片描述
在这里插入图片描述

第三步: 模板管理实现好看的HTML页面(可参考菜鸟教程)

(1) 模板引擎配置
在这里插入图片描述
修改 BookManage/settings.py 文件,设置 TEMPLATES 的 DIRS 值(参考下图)
在这里插入图片描述
(2) 模板语法: 变量
在这里插入图片描述
(3) 模板语法: 常用标签
在这里插入图片描述
在这里插入图片描述
(4) 主页与详情页前端HTML设计
在这里插入图片描述
标题标签(除列举外,可参考菜鸟教程学习)
在这里插入图片描述
列表标签
在这里插入图片描述
图片标签
在这里插入图片描述
链接标签
在这里插入图片描述
表格标签
在这里插入图片描述
表单标签
在这里插入图片描述

四、Django请求的生命周期

  • wsgi : 封装请求后交给后端的web框架( Flask、Django )。
  • 请求中间件: 对请求进行校验或在请求对象中添加其他相关数据,例如: csrf、request.session 。
  • 路由匹配: 根据浏览器发送的不同 url 去匹配不同的视图函数。
  • 视图函数: 在视图函数中进行业务逻辑的处理,可能涉及到: ORM、Templates 。
  • 响应中间件: 对响应的数据进行处理。
  • wsgi : 将响应的内容发送给浏览器。

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

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

相关文章

一文带你读懂:TCP连接的三次握手和四次挥手(下篇)

天下没有不散的宴席,对于 TCP 连接也是这样, TCP 断开连接是通过四次挥手方式。下面我们通过实操,来彻底理解四次挥手。 对TCP连接建立三次握手感兴趣的同学,可以看我上一篇文章:一文带你读懂:TCP连接的三次…

[环境配置]让sd自动翻译提示词插件sd-webui-prompt-all-in-one安装

安装方式 方式一(使用git克隆): 此方法需要你的电脑上安装了 git,如果没有安装,可参考 git 官方文档 进行安装。 打开终端,进入到你的 stable-diffusion-webui 目录下。 使用 git 克隆 sd-webui-prompt…

RobinKarp(字符串哈希)---分析与实现(C++)

1. 简述 给定字符串pattern和串text。求串pattern在串text中出现的位置。 暴力比较是逐个字符比较来确定两个串是否相等,若当前比较失败 则回到开始字符对应字符的后一个字符重复过程。 哈希就是一个大范围到小范围的映射 字符串哈希则是通过比较两个串的哈希值相…

Leetcode 剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作…

使用NLPAUG 进行文本数据的扩充增强

在机器学习中,训练数据集的质量在很大程度上决定了模型的有效性。我们往往没有足够的多样化数据,这影响了模型的准确性。这时数据增强技术就派上了用场。 数据增强可以通过添加对现有数据进行略微修改的副本或从现有数据中新创建的合成数据来增加数据量…

代码随想录训练营Day53|1143.最长公共子序列;1035.不相交的栈;53.最大子序和

1143.最长公共子序列 class Solution {public int longestCommonSubsequence(String text1, String text2) {int[][] dp new int[text1.length()1][text2.length()1];for(int i1;i<text1.length();i){for(int j1;j<text2.length();j){if(text1.charAt(i-1)text2.charAt(…

12性能提升:如何提升gRPC系统性能

这篇文章我们来一起学习下如何提升gRPC系统服务的性能。 gRPC 是一个高性能、开源的 RPC 框架,设计目标是支持多种编程语言和多种平台。它基于 Google 发布的 Protobuf(Protocol Buffers)序列化协议,可以在不同的应用程序之间传输数据。gRPC 具有高效率和可扩展性的特点,…

python3 爬虫相关学习7:使用 BeautifulSoup下载网页图片到本地文件夹

目录 1 一个爬图片pic的代码的例子 1.1 学习的原文章 1.2 原始代码的问题总结 问题1 问题2 问题3 其他问题 1.3 原始代码 2 直接在cmd里 python运行报错 和 处理 2.1 运行报错 2.2 报错原因&#xff1a; 没有提前安装这个bs4 模块 2.3 如何提前知道我的python环境…

【微信小程序】wxml、wxss、js、json文件介绍

&#x1f609;博主&#xff1a;初映CY的前说(前端领域) ,&#x1f4d2;本文核心&#xff1a;微信小程序的入门介绍 【前言】书接上回&#xff0c;我们知道了一个小程序的构成结构&#xff0c;接下来我们来进一步学习小程序的目录结构中的.wxml、.wxss、.js、.json。 目录 ⭐ 一…

一学就会-----链表中倒数第K个节点

文章目录 题目描述思路一代码示例思路二代码示例 题目描述 输入一个链表&#xff0c;输出该链表中倒数第k个结点。 图片示例&#xff1a; 思路一 由于这道题目并没有要求时间复杂度&#xff0c;我们完全可以先遍历一遍链表&#xff0c;得到链表的结点总数&#xff08;count&am…

利用Zookeeper实现集群选举

什么是Zookeeper 分布式开源协调系统&#xff0c;数据模型简单&#xff0c;可以实现同步&#xff0c;配置管理&#xff0c;分组管理&#xff0c;分命名空间管理等。 技术本质 一个原子消息传递系统&#xff0c;它使所有服务器保持同步 FLP(3个科学家名字命名) 理论角度&…

【Spring Security】的RememberMe功能流程与源码详解,基础-进阶-升级-扩展,你学会了吗?

文章目录 前言原理 基础版搭建初始化sql依赖引入配置类验证 源码分析 进阶版集成源码分析疑问1疑问2 鉴权 升级版集成初始化sql配置类验证 源码分析鉴权流程 扩展版 前言 之前我已经写过好几篇权限认证相关的文章了&#xff0c;有想复习的同学可以查看【身份权限认证合集】。今…

OpenAI官方提示词课(三)如何总结文章

现在是信息爆炸时代&#xff0c;打开手机&#xff0c;各种文章扑面而来。我们的精力是有限的。如果有人帮忙把文章总结好给我们&#xff0c;这不就节省了很多时间嘛&#xff01;我们也就可以阅读更多的文章了。 恰好大语言模型在总结文章方面非常有天赋。 下面来看看示例。 …

数学基础第二天

介绍 对于Hissian矩阵是正定的&#xff0c;在这一点是整个范围内的最小值&#xff0c;y在各个方向的二阶导数都是>0的 对于Hissian矩阵是负定的&#xff0c;在这一点是整个范围内的最大值&#xff0c;y在各个方向的二阶导数都是<0的, 对于Hissian矩阵是不定的&#xff…

有了这个工具,支付宝商家多个账号下的账单管理更方便了

大家好&#xff0c;我是小悟 为方便拥有多个支付宝账号的商家获取自身业务、资金数据及下载对账单的能力&#xff0c;为商家提供了商家账单产品&#xff0c;商家可以通过该产品系统化接入账单数据&#xff0c;实现支付宝商家多个账号账单管理的功能。 为拥有多个支付宝账号的…

华为OD机试真题 JavaScript 实现【求符合要求的结对方式】【2023Q1 100分】,附详细解题思路

一、题目描述 用一个数组A代表程序员的工作能力&#xff0c;公司想通过结对编程的方式提高员工的能力&#xff0c;假设结对后的能力为两个员工的能力之和&#xff0c;求一共有多少种结对方式使结对后能力为N。 二、输入描述 6 2 3 3 4 5 1 6 第一行为员工的总人数&#xff…

centos 7 安装git并配置ssh

一、安装 1、查看是否安装git <span style"color:#333333"><span style"background-color:#ffffff"><code class"language-perl">rpm -qa|<span style"color:#0000ff">grep</span> git </code>…

【白嫖系列】永久免费域名申请教程 eu.org

&#x1f951; Welcome to Aedream同学 s blog! &#x1f951; 文章目录 eu.org注册激活注册域名解析 eu.org eu.org 一个从1996开始提供免费域名的组织, 其官网地址是 https://nic.eu.org/ 他帮助学生、爱好者或者非营利组织不用花费购买域名就可能拥有自己的免费域名&#x…

2023.6.9小记——ARM的工作模式与状态

今天打算学一点就写一点&#xff0c;不然全部堆积到晚上压力太大了&#xff0c;有些东西写不完就要睡觉了&#x1f4a4; 1. 什么是numpy&#xff1f; 1.1 numpy简介 是Python中的用于科学计算的库&#xff0c;提供高性能的多维数组对象和对应的操作函数&#xff0c;用于处理大…

微信小程序——实现蓝牙设备搜索及连接功能

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…