Django网站开发技术的应用(理论篇)

概述

        Django提供了许多功能。比如在安全方面上Django提供了csrf防护机制以防止跨域脚本攻击、使用身份验证机制以防止未授权的登录等等。在数据库方面上Django提供了orm(面向对象的数据库访问技术)方便了对数据库的操作。此外Django还提供自定义模板、缓存技术等功能。使得使用Django开发网站的效率大大增加。类似于springboot框架,Django也可以在setting.py里添加若干配置如静态资源的位置、缓存、数据库连接配置等等。以下是一个setting.py的样例。大家可以在评论区大致猜猜这个Django项目里用到了哪些技术要点。

"""
Django settings for WashingServiceManagementSystem project.Generated by 'django-admin startproject' using Django 5.0.6.For more information on this file, see
https://docs.djangoproject.com/en/5.0/topics/settings/For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.0/ref/settings/
"""from pathlib import Path# Build paths inside the project like this: BASE_DIR / 'subdir'.
import channels.sessions
import django.contrib.messages.storage.cookie
import django_redis.clientBASE_DIR = Path(__file__).resolve().parent.parent# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-u1=23_h&2v5s0w#21cod&++ui8s%$yb5^(_9c+69c0iz^rolf2'# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = TrueALLOWED_HOSTS = ['*']# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','daphne','django.contrib.staticfiles','channels','services'
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]ROOT_URLCONF = 'WashingServiceManagementSystem.urls'TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR / 'templates'],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]WSGI_APPLICATION = 'WashingServiceManagementSystem.wsgi.application'ASGI_APPLICATION = 'WashingServiceManagementSystem.asgi.application'CHANNEL_LAYERS = {'default': {'BACKEND': 'channels_redis.core.RedisChannelLayer','CONFIG': {'hosts': ["redis://localhost:6379/0"]}}
}
# Database
# https://docs.djangoproject.com/en/5.0/ref/settings/#databasesDATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}# Password validation
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validatorsAUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]# Internationalization
# https://docs.djangoproject.com/en/5.0/topics/i18n/LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'USE_I18N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.0/howto/static-files/STATIC_URL = 'static/'# Default primary key field type
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-fieldDEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'SESSION_ENGINE = 'django.contrib.sessions.backends.cache'SESSION_COOKIE_NAME = 'py_session'SESSION_COOKIE_AGE = 60 * 60 * 24SESSION_EXPIRE_AT_BROWSER_CLOSE = TrueCACHES={'default':{'BACKEND':'django_redis.cache.RedisCache','LOCATION':'redis://127.0.0.1:6397/1'}
}

使用的第三方类库

        Django还可以与其它第三方库配合使用。具体使用类库以及作用如下所示:

  • 网络爬虫:requests、requests-cache、urllib3、scrapy等等。
  • 数据处理:numpy、bs4、AdroitFisherman、re、xpath、json等等。
  • 网络通信:channels等等。
  • 多并发与异步:multiprocess、threading、asgiref、asyncio等等。
  • 底层调用:python C 扩展、ctypes等等。
  • 系统应用:sys、os等等。
  • etc

特性

        django支持用户身份验证、使用自定义路径转换器、自定义标签、自定义过滤器、自定义代理类模型等等。与以上类库配合使用再结合vue、react等前端框架使得开发多了一些技术选择和逻辑扩充。

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

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

相关文章

掌握Three.js:学习路线,成为3D可视化开发的高手!

学习Three.js可以按照以下路线进行: 基础知识: 首先要了解基本的Web开发知识,包括HTML、CSS和JavaScript。如果对这些知识已经比较熟悉,可以直接进入下一步。 Three.js文档: 阅读Three.js官方文档是学习的第一步。官…

(更新)2004-2022年 全国各省环境污染治理投资额数据

环境污染治理投资额是衡量一个国家或地区在环境保护和污染治理方面投入力度的重要经济指标。它体现了政府和企业在改善环境质量、推动绿色发展方面的共同努力,同时也是环境规制政策执行强度的一个反映。 数据简介 环境污染治理投资额涵盖了以下几个方面&#xff1…

APP软件系统的开发流程

APP软件系统的开发是一个复杂的过程,需要多方面的知识和技能。建议选择专业的开发团队进行开发,以确保APP的质量和成功。APP软件系统的开发流程通常包括以下几个阶段。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合…

react获取use声明的变量的值

在React中,使用useState Hook 可以让你在函数组件中添加状态。useState返回一个状态变量(当前的值)和一个用于更新这个状态变量的函数。要获取useState中的值,你只需要直接使用这个状态变量即可。 下面是一个简单的例子&#xff…

ONLYOFFICE 桌面编辑器 8.1全新发布,更强大的编辑工具

ONLYOFFICE 8.1 一、什么是ONLYOFFICE?二、怎么安装 ONLYOFFICE 8.1三、主要功能介绍四、总结 一、什么是ONLYOFFICE? ONLYOFFICE 是一款功能强大的办公套件,旨在提供全面的文档、表格和演示文稿编辑解决方案。它集成了文字处理、电子表格和演…

基于Hexo+GITHUB搭建个人博客网站(PS:不用域名,不用服务器,重点是免费,小白也能轻松掌握)

✌ 作者名字:高峰君主 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 💬 人生格言:没有我不会的语言,没有你过不去的坎儿。💬 &#x1f5…

TMGM外汇:新兴市场的崛起,未来的经济引擎吗?

随着全球经济版图的不断变化,新兴市场逐渐成为国际投资的热点。从亚地区的中国和印度,到拉丁美洲的巴西和墨西哥,再到非洲的尼日利亚和南非,新兴市场的经济活力和潜力引起了全世界的关注。这些市场不仅人口众多,而且在…

Go 语言高频面试题

Go 初级面试题及详细解答 1. 什么是 Go 语言?它的特点是什么? 解答: Go(又称 Golang)是一门开源编程语言,由Google开发,并于2009年首次公开发布。它具有内存安全、并发支持、垃圾回收等特性&a…

win11 修改用户名

step1: 打开设置 step2: 如下图,点击“重命名”修改即可; 看似简单的问题,但若直接搜索查找,很难找到简单的操作,苦笑。。。

超炫酷, 不用学前端也能自己做网页!这个Python库,3分钟内复刻GPT WEB应用

大家好,我是海鸽。 今天,我要和大家分享如何将请求 GPT 的案例,快速“复刻”成 GPT 网页版。这不仅简单,而且对于我们这些后端开发者来说,简直是福音! 先睹为快 看看这个界面,是不是感觉很熟…

php,python AES/CBC/PKCS7Padding加密解密 base64/hex编码

1. python版本 import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpadclass AESUtilCBC:def __init__(self, key, iv):self.key key.encode(utf-8)self.iv iv.encode(utf-8)self.pad_length AES.block_sizedef encrypt(self, data):try…

如何在PHP中实现继承?

如何在PHP中实现继承? 引言 在面向对象编程(OOP)中,继承是一种强大的特性,它允许一个类(称为子类或派生类)继承另一个类(称为基类或父类)的属性和方法。PHP作为一种支持…

flutter是app跨平台最优解吗?

哈喽,我是老刘 最近在知乎上看到这样一个问题 我们先来解释一下问题中碰到的几个现象的可能原因,然后聊聊跨平台的最优解问题 问题解释 1、跟手、丝滑问题 这个问题其实很多人是有误解的,觉得原生的就丝滑跟手 其实不是这样的 我在做Flut…

kubernetes yaml 资源清单

1 YAML语言 YAML 语言的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。 1.1 基本语法规则 大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数目不重要,只要相同层级的元素左侧对齐即…

『 Linux 』 进程间通信 - 匿名管道 (万字)

文章目录 什么是管道匿名管道的直接原理pipe( )系统调用接口匿名管道代码示例匿名管道的特征总结 什么是管道 管道(Pipe) 是一种基本的进程间通信(IPC)机制,允许一个进程与另一个进程之间进行数据传输; 管道工作方式类似于生活中的水管因此命名为管道,数据从一端流入另一段流出…

NSSCTF-Web题目16

目录 [GDOUCTF 2023]受不了一点 1、题目 2、知识点 3、思路 [UUCTF 2022 新生赛]ez_upload 1、题目 2、知识点 3、思路 [GDOUCTF 2023]受不了一点 1、题目 2、知识点 php代码审计、数组绕过、弱比较绕过 3、思路 打开题目,出现代码,我们进行代…

【STM32】江科大STM32学习笔记汇总(已完结)

00. 目录 文章目录 00. 目录01. STM32学习笔记汇总02. 相关资料下载03. 打赏04. 附录 01. STM32学习笔记汇总 【STM32】STM32学习笔记-课程简介(01) 【STM32】STM32学习笔记-STM32简介(02) 【STM32】STM32学习笔记-软件安装(03) 【STM32】STM32学习笔记-新建工程(04) 【ST…

VUE div的右上角的角标/标签

一、效果图 二、代码 <div class"comp-overview"><div class"overview-item" v-for"(item,index) in overviewInfoList" :key"index"><div class"angle_mark"><span>{{item.label}}</span>&…

Java中的数据库连接池选择与优化

Java中的数据库连接池选择与优化 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 引言 在Java应用程序中&#xff0c;数据库连接池扮演着至关重要的角色。…

2024上海初中生古诗文大会倒计时4个月:单选题真题示例和独家解析

现在距离2024年初中生古诗文大会还有4个多月时间&#xff0c;我们继续来看10道选择题真题和详细解析&#xff0c;以下题目截取自我独家制作的在线真题集&#xff0c;都是来自于历届真题&#xff0c;去重、合并后&#xff0c;每道题都有参考答案和解析。 为帮助孩子自测和练习&…