Django之三板斧的使用,全局配置文件介绍,request对象方法,pycharm链接数据库,Django链接数据库,ORM的增删改查
【1】三板斧(3个方法)的使用
-
Httpresponse()
- 括号内写什么字符串,返回的就是什么字符串
- 返回的是字符串
-
render(request,' 静态文件 ')
- request是固定的
- 静态文件是写在templates文件夹里面的,如,HTML文件
-
redirect(' 重定向的地址 ')
- 重定向的地址:就是要跳转的网页地址。如:http://www.baidu.com
这3个方法是内置的需要导入,具体看如下图片
def index(request):print('request')# return HttpResponse("request") # 它返回的是字符串# return render(request, 'index.html') # 加载HTML页面的# return redirect('http://www.baidu.com') # 加载HTML页面的return redirect('/home/') # 重定向的
【2】settings.py(Django全局配置文件的介绍)
"""
Django settings for myseconddjango project.Generated by 'django-admin startproject' using Django 2.1.For more information on this file, see
https://docs.djangoproject.com/en/2.1/topics/settings/For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.1/ref/settings/
"""import os# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
#用于绑定项目文件位置的绝对路径,所有文件夹都依赖于此路径(django项目的根路径)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!
# 安全警告:对生产中使用的安全密钥(也可以说是对密码加密使用的盐)
SECRET_KEY = 'rah+wlz=0#)_g=@-n8@gko(0yh*%e1h*1rmr5=!ccpd@df%3oc'# SECURITY WARNING: don't run with debug turned on in production!
# DEBUG项目的启动模式:
# 1.True:调试模式
# 检测代码改动后,立即重启服务
# 显示报错页面,便于查找错误
# 2.False:正式启动模式或者上线模式
# 不显示错误信息,改为False时,需要指定ALLOWED_HOSTS来过滤一些错误的请求DEBUG = TrueALLOWED_HOSTS = []
#[]空列表,表示只有请求头中host为127.0.0.1,localhost能访问本项目,-DEBUG=True时有效
#['*'],表示任何请求头的host都能访问当前项目
#['192.168.1.3','127.0.0.1'],表示只有当前两个host的值才能访问当前项目# Application definition#注册Django应用
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app02.apps.App02Config',
]#注册中间件
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',
]# 表明Django主路由的位置
ROOT_URLCONF = 'myseconddjango.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_APPLICATION = 'myseconddjango.wsgi.application'# Database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases# 数据库配置
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}
}# Password validation
# https://docs.djangoproject.com/en/2.1/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/2.1/topics/i18n/# 语言信息配置
# LANGUAGE_CODE = 'en-us' # 英文
LANGUAGE_CODE='zh-hans' # 中文# 时区设置
# TIME_ZONE = 'UTC' # 世界标准时区
TIME_ZONE = 'Asia/Shanghai' # 中国时区USE_I18N = TrueUSE_L10N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/# 这个配置是访问静态文件的令牌
STATIC_URL = '/static/'
【3】静态文件的配置
【3.1】 什么是静态文件?
静态文件:能直接拿来使用的都是静态文件
例如:类似HTML文件,类似CSS文件,类似js文件,图片,第三方的前端框架(jQuery,bootstrap等)
静态文件一般写在static文件夹中,但这个文件夹Django项目默认情况下没有,因此我们需要手动创建。静态的HTML文件一般存放在templates文件夹中
【3.2】django地址问题
向django项目中导入static静态文件后,会出现找不到文件地址的情况。
原因是:在Django中没有开设这样一个地址。
解决方法:Django自动帮我们加。
在Django的全局配置文件settings.py中添加一个:
STATICFILES_DIRS = [os.path.join(BASE_DIR,' static ')]
static是static文件夹的路径
【3.3】动态解析
在settings.py这个文件中有:STATIC_URL = ' /static/ '
STATIC_URL = ' /static/ ' 是访问静态文件的令牌,没有去访问静态文件必要要有这个令牌,没有这个令牌,直接拒绝访问
{% %} 一般写跟逻辑相关的
{{ }} 一般写跟变量相关的
动态解析就需要用到{% %}
{% load static %}<script src="{% static 'js/jquery_3.7.1_jquery.min.js' %}"></script> <link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}"> <script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>''' {% load static %} ------ load是固定写法,static是令牌<script src="{% static 'js/jquery_3.7.1_jquery.min.js' %}"></script>static是令牌,后面是文件地址'''
【4】request对象方法
以登录系统为例子
-
request.method
- 查看请求方式是POST还是GET
-
request.POST
- 获取以post请求方式提交的表单数据
-
request.POST.get('username')
- 获取以post请求方式提交的指定表单数据
- 使用get方法默认是拿到最后一个值
-
request.POST.getlist('hobby')
- 获取以post请求方式提交的指定表单数据中的多个值
-
request.GET
- 获取以get请求方式,网址栏上的参数
-
request.GET.get('a')
- 获取以get请求方式,网址栏上的指定参数的值
-
request.GET.getlist('C')
- 获取以get请求方式,网址栏上的指定参数的值的多个值
以上方法都需要用print()打印才能看到效果
例:print(request.POST)
【5】django链接数据库
在settings.py中链接数据库
将原先的default注释掉,然后新写一个default
# 数据库配置 DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # }'default': {'ENGINE': 'django.db.backends.sqlite3','HOST': '127.0.0.1','PORT': 3306,'USER': 'root','PASSWORD': '123','NAME': 'db1','CHARSET': 'UTF8', } }
注意:
配置完链接数据的代码之后,Django默认启动不起来。原因:内部使用的链接模块用的是mysqldb,我们换个模块,使用pymysql模块
如何更换成pymysql:
在任意的__init__.py这个文件中添加如下两行代码:
import pymysqlpymysql.install_as_MySQLdb()
【6】orm介绍
orm:对象映射模型
映射对应关系:
面向对象 》》》》 数据库
类名 》》》》 表名
对象 》》》》 一条记录
属性 》》》》 一个字段
在Django中操作数据库不用写原生的SQL语句,而是使用面向对象的语法和一些方法来操作数据库。
这个方法的缺点:
代码的封装程度太高,导致执行效率下降
书写SQL语句的位置:models.py这个文件
在models.py中写完后,需要在Terminal终端中做数据库迁移命令
数据库迁移命令:
python36 manage.py makemigrations # 生成迁移的记录python36 manage.py migrate # 这句话是真正操作数据库,生成表
只要是对models.py里面的代码做了修改或其它改动,都需要重新执行数据库迁移命令
相关文章:

Django之三板斧的使用,全局配置文件介绍,request对象方法,pycharm链接数据库,Django链接数据库,ORM的增删改查
【1】三板斧(3个方法)的使用 Httpresponse() 括号内写什么字符串,返回的就是什么字符串返回的是字符串 render(request, 静态文件 ) request是固定的静态文件是写在templates文件夹里面的,如,HTML文件 redirect( 重定向的地址 ) 重…...

医学影像系统源码(MRI、CT三维重建)
一、MRI概述 核磁共振成像(英语:Nuclear Magnetic Resonance Imaging,简称NMRI),又称自旋成像(英语:spin imaging),也称磁共振成像(Magnetic Resonance Imag…...

【uniapp】仿微信通讯录列表实现
效果图 代码实现 <view class"main-container"><!-- 成员列表 --><scroll-viewclass"member-list":style"computedHeight":scroll-y"true":enable-back-to-top"true":scroll-with-animation"true"…...
[MT8766][Android12] 增加应用安装白名单或者黑名单
文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MT8766 版本: Android 12 kernel: msm-4.19 问题描述 在项目开发的时候,经常有一些客户,要求系统安装应用的时候需要进行验签;也就是系统默认不允许任何应用安装&#…...

游戏公司数据分析师必备知识(持续补充中...)
1.如何撰写专题报告? ①原则 只有一个主题:即使不讲ppt,业务方也能看得懂行文通俗简单易懂:学习产品经理平常是如何写报告的明确的数据结论和落地项先行:跟业务方多沟通数据结论,让他们给出落地项 ②结构…...
intellj 开发软件插件
IDEA: .ignore Alibaba Java Coding Guidelines(XenoAmess TPM) Chinese (Simplified) Language Pack / 中文语言包 CodeGlance Pro Gitee Grep Console Json Formatter Maven Helper Nyan Progress Bar One Dark theme Python Rainbow Brackets Resource Bundle Ed…...

leetCode 493 翻转对
给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。 未完待续~...

“辛巴猫舍”内网渗透、提权、撞库学习笔记
前言: 在拿到靶机时,我们最先需要做的是信息收集,包括不限于:C段扫描,端口探测,指纹识别,版本探测等。其次就是 漏洞挖掘、漏洞利用、提权、维持权限、日志清理、留下后门。 以上就是渗透的基本…...

粤嵌实训医疗项目--day06(Vue + SpringBoot)
往期回顾 粤嵌实训医疗项目(小组开发)--day05-CSDN博客粤嵌实训医疗项目--day04(Vue SpringBoot)-CSDN博客粤嵌实训医疗项目--day03(Vue SpringBoot)-CSDN博客粤嵌实训医疗项目day02(Vue SpringBoot)-CS…...

SPSS二元Logistic回归
前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…...

前端-第一部分-HTML
一.初识HTML 1.1 HTML 简介 HTML 全称为 HyperText Mark-up Language,翻译为超文本标签语言,标签也称作标记或者元素。HTML 是目前网络上应用最为广泛的技术之一,也是构成网页文档的主要基石之一。HTML文本是由 HTML 标签组成的描述性文本&a…...

六度空间(C++)
目录 题目: 输入、输出格式: 代码: 运行结果: 题目: 输入、输出格式: 代码: #include<iostream> #include<algorithm> using namespace std; int g[10005][10005]; float n…...
记录undefined reference to `SSLv3_client_method‘错误笔记
libcurl.a(libcurl_la-openssl.o): in function ossl_connect_step1: openssl.c:(.text0x3ca8): undefined reference to SSLv3_client_method 我个人环境原因:编译选项指定了某个openssl目录,此目录下有libcrypto.a libssl.a 解决方法:…...
JS算法练习 11.11
leetcode 2619 数组原型对象的最后一个元素 请你编写一段代码实现一个数组方法,使任何数组都可以调用 array.last() 方法,这个方法将返回数组最后一个元素。如果数组中没有元素,则返回 -1 。 你可以假设数组是 JSON.parse 的输出结果。 示例…...

50代码审计-PHP无框架项目SQL注入挖掘
代码设计分为有框架和无框架 挖掘技巧:随机挖掘,定点挖掘,批量挖掘(用工具帮助扫描探针,推荐工具:fortify,seay系统)。 1.教学计划: ---审计项目漏洞 Demo->审计思…...

什么是微服务?与分布式又有什么区别?
什么是微服务,我们先从传统的单体结构进行了解,对两者进行对比。 单体结构 单体结构是一种传统的软件架构模式,它将应用程序划分为一组相互依赖的模块和组件。这些模块和组件通常都是构建在同一个平台上的,并且紧密耦合在一起。…...

案例 | 3D可视化工具HOOPS助力SolidWorks edrawings成功引入AR/VR技术
HOOPS中文网慧都科技是HOOPS全套产品中国地区指定授权经销商,提供3D软件开发工具HOOPS售卖、试用、中文试用指导服务、中文技术支持。http://techsoft3d.evget.com/达索系统SolidWorks面临的挑战 达索系统SolidWorks公司开发和销售三维CAD设计软件、分析软件和产品…...

初识Linux:目录路径
目录 提示:以下指令均在Xshell 7 中进行 一、基本指令: 二、文件 文件内容文件属性 三、ls 指令拓展 1、 ls -l : 2、ls -la: 3、ls [目录名] : 4、ls -ld [目录名]: 四、Linux中的文件和…...

抖音小程序开发:探索技术创新的代码之旅
随着抖音小程序的兴起,企业纷纷将目光投向这个充满活力的平台。抖音小程序开发不仅为品牌提供了更广泛的曝光机会,更是技术创新的舞台。本文将带领读者深入探索抖音小程序开发的技术要点,探讨如何通过代码实现个性化、高效的小程序。 1. 小…...

公司注册股东选择几个人合适?
创业初期很多创业者都会选择有注册有限责任公司,有限责任由五十个以下的股东出资设立,每个股东以其所认缴的出资额为限对公司承担有限责任。那么问题来了股东人数选择几个最合适呢,下面上海注册公司网(www.91kaiye.cn)…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...