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

Django实战

一、开发登录表单

image-20220923140036089

def login_form(request):html = '''<html><body><form method="post">用户名:<input name = "username" type="text"></input></br>密码:<input name = "password" type = "password"></input></br><input type="submit" value="登录"></input></form></body></html>'''return HttpResponse(html)

 二、Django配置文件-初识

image-20220927152235732

2.1、介绍

Django项目创建后,在主应用中,会有一个settings.py文件,这个就是该项目的配置文件

  • settings文件包含Django安装的所有配置
  • settings文件是一个包含模块级变量的python模块,所以该模块本身必须符合python规则,并且可以使用python的语法
  • settings中的所有配置项的key必须全部大写
  • settings中每一个配置项都有默认值,默认配置内容在django/conf/global_settings.py中可以查看到,项目中不需要导入该模块,django框架会自动获取
  • settings中可以添加自定义的配置项

2.2、配置文件的使用

  1. manage.py启动

    默认在manage.py中配置:

    if __name__ == "__main__":os.environ.setdefault("DJANGO_SETTINGS_MODULE", "firstdjango.settings")
    
  2. 手动指定配置文件位置

    python manage.py runserver --settings=firstdjango.settings
    
  3. 服务器部署启动

    在wsgi.py中配置:

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "firstdjango.settings")
    

2.3、程序中获取配置项

如果在项目代码中需要获取settings中的配置项,这样获取:

# 切记不要导入具体的settings模块的路径,会形成高耦合
# 这样的方式是不可取的:from mysite import settings
from django.conf import settingsd = settings.DEBUG

三、Django配置文件-常用配置项

image-20220927152506643

import os"""当前文件所在文件夹的上一级目录的绝对路径切记2个 os.path.dirname
"""
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))"""用于加密session,一个随机的字符串这样生成:from django.core.management import utilsutils.get_random_secret_key()
"""
SECRET_KEY = '=*f&bx760nyar7@8lb8!w$9h(3ea6p3apl$iua!td1q%-u5r4='# 调试模式,可以看到错误的所有相信信息,部署时一定要修改为False
DEBUG = True"""允许访问的域名设置开发环境不用理会运行环境,配置 DEBUG = False后,如果允许所有域名访问,则设置 ALLOW_HOSTS = ['*']如果指定某些域名可以访问,则设置 ALLOW_HOSTS = ['*.baidu.com']
"""
ALLOWED_HOSTS = []"""应用的配置,如:'polls.apps.PollsConfig'如果没有 PollsConfig ,那么可以配置为  'polls'
"""
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles', # 只有 DEBUG = Ture 才有效'polls' # 子应用必须配置,否则不起作用
]"""中间件自己编写的 中间层 需要配置在最后譬如:mymidlle.md.TestMiddleware
"""
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',]# 配置基础的urls
ROOT_URLCONF = 'firstdjangopy.urls'# 配置模板
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(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配置
WSGI_APPLICATION = 'firstdjango.wsgi.application'"""数据库配置mysql在python3的使用,需要在 __init__.py 中加入以下代码:import pymysqlpymysql.install_as_MySQLdb()
"""
# DATABASES = {
#   'default': {
#     'ENGINE': 'django.db.backends.sqlite3',
#     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#   }
# }
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'django_test1','USER': 'root','PASSWORD': '123456','HOST': '127.0.0.1','PORT': '3306',}
}"""用户密码验证
"""
AUTH_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',},
]# 语言选择 , zh-Hans 为中文
LANGUAGE_CODE = 'en-us'# 时区 Asia/Shanghai 是中国时区
TIME_ZONE = 'UTC'# 国际化
USE_I18N = True# 本地化
USE_L10N = True# 使用时区,配套TIME_ZONE使用,必须设置为 False
USE_TZ = False"""静态文件的路径,默认是 static如果在各自项目的static目录以外,还有目录存放静态文件,需要添加如下属性:STATICFILES_DIRS = (os.path.join(BASE_DIR, "common_static1"),'/var/www/static/',)
"""
STATIC_URL = '/static/'

相关文章:

Django实战

一、开发登录表单 def login_form(request):html <html><body><form method"post">用户名:<input name "username" type"text"></input></br>密码&#xff1a;<input name "password" type…...

redis(1)

文章目录 一、redis基础redis简介redis 特性单线程redis 对比 memcachedredis 典型应用场景 二、redis安装及连接yum安装redis查看yum仓库redis版本yum安装 redis 编译安装 redis编译安装前台启动redis启动多实例解决启动时的三个警告提示创建 redis 用户编辑 redis 服务器启动…...

【RTP】webrtc 学习2: webrtc对h264的rtp打包

切片只是拷贝帧的split的各个部分到新的rtp 包的封装中。并没有在rtp包本身标记是否为关键帧FU-A 切片 输入的H.264 数据进行split :SplitNalu SplitNalu : 按照最大1200字节进行切分 切分后会返回一个数组 对于FU-A :split的数据总大小是 去掉一个字节的nalu header size …...

【搜索术】代码阅读理解学习笔记

学习资料 《理解源代码》 1 静态阅读 1.1 目标结构 常见目录名含义docs项目文档examples示例代码...

vue 打包下载多层zip文件

npm install jszip npm install file-saverimport JSZip from "jszip"; import FileSaver from "file-saver"; import {Message} from "view-design";/*** 下载文件 传数组* fileList* [* {* type:file,* name:17034953113790548.png,…...

Flink实战五_状态机制

接上文&#xff1a;Flink实战四_TableAPI&SQL 在学习Flink的状态机制之前&#xff0c;我们需要理解什么是状态。回顾我们之前介绍的很多流计算的计算过程&#xff0c;有些计算方法&#xff0c;比如说我们之前多次使用的将stock.txt中的一行文本数据转换成Stock股票对象的ma…...

SQL中having与where的区别 简单明了

having子句与where都是设定条件筛选的语句&#xff0c;有相似之处也有区别。 having与where的区别: having是在分组后对数据进行过滤 where是在分组前对数据进行过滤 having后面可以使用聚合函数 where后面不可以使用聚合 在查询过程中执行顺序&#xff1a;from>where>g…...

Transformer 自然语言处理(二)

原文&#xff1a;Natural Language Processing with Transformers 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第五章&#xff1a;文本生成 基于 Transformer 的语言模型最令人不安的特点之一是它们生成的文本几乎无法与人类写的文本区分开。一个著名的例子是 Ope…...

软件测试之软件缺陷管理

什么是软件缺陷 标准的定义&#xff1a;从产品内部看&#xff0c;缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题&#xff1b;从产品外部看&#xff0c;缺陷是系统所需要实现的某种功能的失效或违背 软件缺陷的生命周期 一个缺陷的正常生命周期是 新建&#xff…...

分布式锁(Distributed Lock)介绍(基于数据库(mysql);基于缓存(redis);基于ZooKeeper等分布式协调服务)

文章目录 分布式锁介绍1. 分布式锁的工作原理1.1 锁的基本概念1.2 工作机制 2. 分布式锁的实现方式2.1 基于数据库的分布式锁2.2 基于Redis的分布式锁2.3 基于ZooKeeper的分布式锁 3. 分布式锁的挑战3.1 死锁问题3.2 锁粒度问题粗粒度锁细粒度锁锁粒度的选择 3.3 锁的公平性问题…...

10 ISIS 基础 报文 状态

10 ISIS 基础 报文 状态 09 ISIS 大纲-CSDN博客 •看完本篇博客,您将能知道以下内容: ▫描述IS-IS的基本概念 ▫描述IS-IS的工作原理 ▫描述IS-IS与OSPF的差异 ▫实现IS-IS的常用配置 ▫实现 ISIS 的常用到的认证...

Python第三方扩展库Matplotlib

Python第三方扩展库Matplotlib Matplotlib 是第三方库&#xff0c;不是Python安装程序自带的库&#xff0c;需要额外安装&#xff0c;它是Python的一个综合性的绘图库&#xff0c;提供了大量的绘图函数用于创建静态、动态、交互式的图形和数据可视化&#xff0c;可以帮助用户创…...

单例模式有几种写法?请谈谈你的理解?

为什么有单例模式&#xff1f; 单例模式&#xff08;Singleton&#xff09;&#xff0c;也叫单子模式&#xff0c;是一种常用的软件设计模式。在应用这个模式时&#xff0c;单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象&#xff0c;这样有利…...

帕鲁幻兽 一键开服 简单到爆 教你10秒实现 帕鲁幻兽私服联机服务器搭建

幻兽帕鲁是一款非常受欢迎的游戏&#xff0c;最近在社区中呈现了爆火的趋势&#xff0c;在线人数已经突破了百万级别。由于社区的热度不断上升&#xff0c;官方服务器开始出现了不稳定和卡人闪退的情况。搭建一个私人服务器可能是一个最稳定而舒适的解决方案。通过搭建私人服务…...

自动化报告pptx-python|如何将pandas的表格写入PPTX(二)

本篇延续:自动化报告的前奏|使用python-pptx操作PPT(一) 因为在pptx-python中使用table,需要单个cell逐一输入,于是在想有没有pandas可以直接读入的方式, 有两个开源项目有类似的功能: PandasToPowerpointmspandas其中mspandas写的比较复杂,PandasToPowerpoint比较易懂…...

Ruby详解及安装流程

文章目录 一、Ruby详解二、Ruby安装流程三、Ruby案例四、Ruby常见问题五、Ruby优缺点六、热门文章 一、Ruby详解 Ruby是一种高级编程语言&#xff0c;具有简单易学、灵活多变、优雅美丽的语法特点。它是一种面向对象的编程语言&#xff0c;具有动态类型和解释型语言的特性。在…...

免费的ChatGPT网站 ( 7个 )

ChatGPT的核心功能是基于用户在输入时的语言或文本生成相应的回复或继续内容。此外&#xff0c;它还能够完成多种任务&#xff0c;如撰写邮件、视频脚本、文案、翻译、代码编写以及撰写论文等。 博主归纳总结了7个国内非常好用&#xff0c;而且免费的chatGPT网站&#xff0c;AI…...

python异步编程(1)——理论篇

1.理解多线程 当启动一个Python程序时&#xff0c;它会作为一个单独的进程运行在操作系统中。进程是操作系统分配资源&#xff08;如内存和处理器时间&#xff09;的基本单位。每个Python程序启动时&#xff0c;都会创建一个主线程。如果没有在代码中明确创建其他线程&#xf…...

PyTorch复现网络模型VGG

VGG 原论文地址&#xff1a;https://arxiv.org/abs/1409.1556VGG是Visual Geometry Group&#xff08;视觉几何组&#xff09;的缩写&#xff0c;它是一个在计算机视觉领域中非常有影响力的研究团队&#xff0c;主要隶属于牛津大学的工程系和科学系。VGG以其对卷积神经网络&am…...

Springboot集成Javamelody

JavaMelody的目标是监视QA和生产环境中的Java或Java EE应用服务器。它不是模拟用户请求的工具&#xff0c;而是根据用户对应用程序的使用情况来衡量和计算应用程序实际操作的统计信息的工具。JavaMelody主要基于请求统计和演化图。 它允许改进QA和生产中的应用程序&#xff0c…...

100行代码实现扩散模型:PyTorch版终极入门指南

100行代码实现扩散模型&#xff1a;PyTorch版终极入门指南 【免费下载链接】Diffusion-Models-pytorch Pytorch implementation of Diffusion Models (https://arxiv.org/pdf/2006.11239.pdf) 项目地址: https://gitcode.com/gh_mirrors/di/Diffusion-Models-pytorch 你…...

学网安压根不卡学历,在校生自学这样走少绕好几年弯路

学网安压根不卡学历&#xff0c;在校生自学这样走少绕好几年弯路 前言 “网络安全只有计算机高材生才能学&#xff1f;” “没有名校背景&#xff0c;根本进不了这个行业&#xff1f;” “普通专科生、本科生、非科班出身想要自学网络安全&#xff0c;难度太大了吧&#xf…...

ARM编译器符号排列机制解析与工程实践

1. ARM编译器符号排列机制深度解析在嵌入式开发中&#xff0c;全局常量的内存布局往往会对系统行为产生微妙影响。最近在将项目从ARMCC v5迁移到ARMCLANG v6时&#xff0c;我遇到了一个有趣的差异现象&#xff1a;相同源代码中的const数组&#xff0c;在两个工具链中竟然产生了…...

谷歌 AI Studio 一下午开发三款应用,游戏体验却差强人意?

谷歌 AI Studio 助力开发应用 昨天&#xff0c;我开发出了自己的第一款 Android 应用程序&#xff0c;紧接着又做了两个&#xff0c;一个下午就完成了三款应用。其中一款应用&#xff0c;我在网页浏览器里输入 148 个单词后&#xff0c;十分钟后手机上就有了新应用。开启手机 U…...

皮线、裸纤总是分不清?试试这个算法一键校准技巧

不知道你有没有经历过这种工地上的"崩溃瞬间"&#xff1a;大热天蹲在居民楼昏暗的楼道里&#xff0c;蚊子在耳边嗡嗡叫&#xff0c;你手里正拉着一根刚从住户门缝里拽出来的皮线光缆&#xff0c;准备跟分纤箱引出来的单模裸纤做熔接。结果放进机器&#xff0c;合上盖…...

STM32以太网实战:手把手教你配置SMI接口,搞定PHY寄存器读写

STM32以太网实战&#xff1a;手把手教你配置SMI接口&#xff0c;搞定PHY寄存器读写 在嵌入式以太网开发中&#xff0c;PHY芯片的配置往往是项目成败的关键。很多开发者能够轻松完成MAC层的初始化&#xff0c;却在PHY寄存器读写这个环节卡壳——明明硬件连接正确&#xff0c;却无…...

牛客周赛 Round 142 C题及D题题解

首先是C题&#xff1a; 咱们先看题目&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/133790/C 来源&#xff1a;牛客网。 这道题其实特别简单&#xff0c;我们只需要按顺序遍历数组&#xff0c;统计能依次被 1、2、3... 整除的元素数量&#xff0c;即…...

轮式机器人里程计误差分析与精度提升实战指南

1. 项目概述&#xff1a;从轮子转动到空间定位轮式移动机器人&#xff0c;无论是工厂里的AGV小车、仓库里的分拣机器人&#xff0c;还是家用的扫地机器人&#xff0c;它们要完成自主移动&#xff0c;第一个要回答的哲学问题就是&#xff1a;“我在哪&#xff1f;” 而里程计&am…...

告别SDK Manager卡顿:用命令行flash.sh为Jetson TX2刷入JetPack 4.6.4系统镜像

告别SDK Manager卡顿&#xff1a;用命令行flash.sh为Jetson TX2刷入JetPack 4.6.4系统镜像 当你在为Jetson TX2刷写系统时&#xff0c;是否曾被SDK Manager的图形界面折磨得焦头烂额&#xff1f;网络中断、进度条卡死、"The target is in a bad state"等错误提示让本…...

昇腾CANN asc-devkit:开发者工具包的核心能力和工程化实践

asc-devkit 是 CANN 开发者工具包的入口——它是一个命令行工具&#xff0c;也是一套 IDE 插件&#xff0c;还打包了所有开发所需的脚本和模板。定位类似于 NVIDIA 的 nsys&#xff08;性能分析&#xff09; nvcc&#xff08;编译器封装&#xff09; 项目脚手架工具&#xff0c…...