Django知识点

目录

一、三板斧的使用

二、全局配置文件

三、静态文件的设置

四、request对象的方法

五、pycharm链接数据库

六、Django链接数据库

七、orm介绍


一、三板斧的使用

三个方法:

  • HttpResponse 
  • render
  • redirect
def index(request):print('request')return HttpResponse("request")  # 它返回的是字符串return render(request, 'index.html')  # 加载HTML页面的return redirect('http://www.baidu.com')  # 加载HTML页面的return redirect('/home/')  # 重定向的

二、全局配置文件

LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = FalseDATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}
}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',
]INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config',  # 这是全写
]

三、静态文件的设置

1、静态文件:直接拿来就使用的都是静态文件

  • 类似于HTML文件
  • 类似于CSS文件
  • 类似于js文件
  • 图片
  • 第三方的前端框架(jQuery、bootstrap)
  • ...

2、静态文件存在Django框架的哪个位置?

我们一般把静态文件放在框架下的static文件夹;但是,默认情况下没有这个文件夹,因此,需

要我们手动创建出来这个文件夹static。静态的html一般放在templaes文件夹下面。

  • 我们一般还会在static文件夹下进一步的划分目录:
    • css
    • js
    • img
    • ...
    • /index
    • /home

我们访问不到一个地址,是因为在Django里面没有开设这样一个地址,Django帮你加了,你只需要按照规则添加即可。

http://127.0.0.1:8000/static/bootstrap-3.4.1-dist/css/bootstrap.min.css
  • {%  %}    一般写跟逻辑相关的
  • {{  }}        跟变量相关的

3、动态解析

{% 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>
"""这个配置是访问静态文件的令牌"""
STATIC_URL = '/dasdasdasdas/'"""其实就是static文件夹的路径"""
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),os.path.join(BASE_DIR, 'static1'),os.path.join(BASE_DIR, 'static2')
]

四、request对象的方法

<form action="" method="post">

action:

  1. 不写,朝当前地址提交
  2. 全写
  3. 只写后缀

post提交表单,前期先把下面的代码注释掉

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',
]
print(request.GET)
print(request.GET.get('a'))
print(request.GET.get('b'))
print(request.GET.get('c'))
print(request.GET.getlist('c'))
# print(request.POST) # 获取以post请求方式提交的表单数据
# print(request.POST.get('username')) # kevin 获取以post请求方式提交的表单数据
# print(request.POST.get('password')) # 123 获取以post请求方式提交的表单数据
"""get获取默认拿到的是最后一个元素值"""
# print(request.POST.get('hobby')) # 3 获取以post请求方式提交的表单数据
# ['a', 'b', 'c']
username = request.POST.get('username')
password = request.POST.get('password')
print(request.POST.getlist('hobby')) # 3 获取以post请求方式提交的表单数据request.method == 'POST':

五、pycharm链接数据库

使用PyCharm连接数据库(MySQL)_.G( );的博客-CSDN博客

六、Django链接数据库

配置完链接数据的代码之后,Django默认启动不起来了,原因是:内部使用的链接模块用的是mysqldb;我们不使用这个模块,我们使用pymysql模块。

  • 如何更换pymysql
    • 在任意的__init__.py文件中添加一下代码
import pymysql
pymysql.install_as_MySQLdb()
  • 后续还有一个模块:mysqlclient,这个模块不需要加任何的代码
    • 这个模块一般装不上,不容易装上,很容易报错

七、orm介绍

orm:对象映射模型

在Django中操作数据库就不用在写原生的SQL语句,而是使用面向对象的语法和一些方法来操作数据库;缺点:代码的封装程度太高,导致的问题:执行效率下降了,目前可以忽略,需要自己写原生SQL语句。

类名		>>>  		表名
对象		>>>			一条记录
属性		>>>			一个字段

1、我们的这些orm在哪里书写呢? 

models.py这个文件就是跟数据库打交道的

2、类名写好之后,一定别忘了做数据库迁移命令

python38 manage.py makemigrations  
# 生成迁移的记录(类似以是一个小本本)
python38 manage.py migrate		  
# 这句话才是真正的操作了数据库,然后生成表

当你修改了跟数据量相关的代码之后,都要执行这两句话 

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

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

相关文章

lightdb oracle模式支持sys_refcursor类型

背景 在业务产品中&#xff0c;存在Oracle移植过来的函数以及存储过程。它们把sys_refcursor作为参数的类型。 LightDB 23.4版本对此进行了支持。 示例 准备环境 create database test_oracle with lightdb_syntax_compatible_type oracle; \c test_oracle准备数据 crea…

云计算、大数据技术的智慧工地,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式

智慧工地是利用物联网、云计算、大数据等技术&#xff0c;实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式。 智慧工地架构&#xff1a; 1、终端层&#xff1a; 充分利用物联网技术、移动应用、智能硬件设备提高现场管控能力。通过RFID、传感器、摄像头、手机等终…

Mongodb 中,与索引相关的监控指标

Mongodb为集合添加索引&#xff0c;能够提高查询的效率&#xff0c;减少查询过程中检索文档的数量&#xff0c;改变文档检索的方式。 索引&#xff0c;采用集合中的一部分数据&#xff0c;构建了B tree&#xff0c;支持mongodb的高效检索。除$indexStats命令外&#xff0c;mong…

RK3568平台开发系列讲解(Linux系统篇)Linux 目录结构

🚀返回专栏总目录 文章目录 一、VFS二、分区结构三、挂载 mount四、目录结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们从目录管理入手,会更直观的理解 linux 的目录结构。 一、VFS Linux 所有的文件都建立在虚拟文件系统(Virtual File System ,VFS…

【LittleXi】C程序预处理、编译、汇编、链接步骤

【LittleXi】C程序预处理、编译、汇编、链接步骤 C程序 #include<stdio.h> int main(){int x1,y1;printf("xy%d",xy); }1、预处理 将头文件引入进来、除去注释、宏定义下放 执行指令 g -E esc.c -o esc.i 2、编译 将处理好的代码编译为汇编代码.s 执行…

移动端性能专项测试之内存 - 进阶篇

在 Android 系统中内存作为重要的资源&#xff0c;一直是开发及测试关注的重点&#xff0c;内存不足或者内存资源滥用都会导致严重的问题。本篇文章将会从底层出发给大家介绍 OOM&#xff08;Out Of Memory&#xff09;和 LMK&#xff08;Low Memory Killer&#xff09;等内存相…

c++-哈希

文章目录 前言一、unordered系列关联式容器1、unordered_map2、性能测试 二、哈希1、哈希概念2、哈希冲突3、哈希冲突解决3.1 闭散列3.2 开散列3.3 字符串Hash函数3.4 哈希桶实现的哈希表的效率 三、哈希表封装unordered_map和unordered_set容器1、unordered_map和unordered_se…

Git Commit 之道:规范化 Commit Message 写作指南

1 commit message 规范 commit message格式都包括三部分&#xff1a;Header&#xff0c;Body和Footer <type>(<scope>): <subject><body><footer>Header是必需的&#xff0c;Body和Footer则可以省略 1.1 Header Type&#xff08;必需&#xf…

Asp.Net Core 中使用配置文件

本文参考微软文档&#xff1a;ASP.NET Core 中的配置 ASP.NET Core 中的应用程序配置是使用一个或多个配置程序提供程序执行的。 配置提供程序使用各种配置源从键值对读取配置数据&#xff1a; 设置文件&#xff0c;例如 appsettings.json环境变量Azure Key VaultAzure 应用配…

Oracle导入,注意事项

在执行导入时&#xff0c;如果导入的触发器引用的表不存在&#xff0c;可能会导致错误。触发器通常会在相关的表结构之后导入&#xff0c;但在导入阶段&#xff0c;表的创建并不一定会立即执行。 在 Oracle 数据库中&#xff0c;触发器的创建可能涉及到对表的引用&#xff0c;…

NLP在网安领域中的应用(初级)

NLP在网安领域的应用 写在最前面1. 威胁情报分析1.1 社交媒体情报分析&#xff08;后面有详细叙述&#xff09;1.2 暗网监测与威胁漏洞挖掘 2. 恶意软件检测2.1 威胁预测与趋势分析 3. 漏洞管理和响应4. 社交工程攻击识别4.1 情感分析与实时监测4.2 实体识别与攻击者画像构建4.…

金蝶云星空设置单据体行高

文章目录 金蝶云星空设置单据体行高表单插件Python脚本 金蝶云星空设置单据体行高 表单插件 新建类继承AbstractBillPlugIn&#xff0c;重写OnInitialize方法进行设置 public override void OnInitialize(InitializeEventArgs e){base.OnInitialize(e);this.View.GetControl&…

Qt绘制各种图形

重载绘图事件&#xff1a; protected:void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;void Widget::paintEvent(QPaintEvent *event) { 进行绘图操作 } 绘图前操作&#xff1a; //基本绘图QPainter painter(this);//创建QPainter对象painter.setRenderHint(QPa…

nav2 调节纯追踪算法

纯追踪算法 纯追踪基础 The core idea is to find a point on the path in front of the robot and find the linear and angular velocity to help drive towards it. 核心思想是在机器人前方的路径上找到一个点&#xff0c;并找到一个合适的线速度和角速度&#xff0c;以驱…

MFC 简单绘图与文本编辑

目录 一.创建单文档项目 二.消息映射机制 三.WM_PAINT消息触发 四.CVIEW类 五.设备上下文 六.资源类和资源的关系 七.画线&#xff0c;矩形 八.画布 九.画笔 十.画刷 十一.利用TRACE打印日志 十二.文本编程 十三.ID号 十四.菜单栏 十五.菜单命令路由 十六.工具…

如何快速入门笔记软件『Obsidian』

前言 Obsidian 是基于 Markdown 语法的笔记软件&#xff0c;界面简洁&#xff0c;使用简单&#xff0c;功能实用&#xff0c;支持跨平台数据同步&#xff0c;实现基于双向链接的知识图谱&#xff0c;同时提供各种各样的扩展主题和插件 本文将会详细讲解笔记软件 Obsidian 的安…

如何设置静态代理IP切换电脑上网地址使用?

在当今的网络时代&#xff0c;代理IP已成为一种常见的网络访问方式。通过使用代理IP&#xff0c;我们可以隐藏自己的真实IP地址&#xff0c;从而保护自己的隐私和安全。但是&#xff0c;有时候我们需要切换代理IP来满足不同的上网需求。本文将介绍如何设置静态代理IP切换电脑上…

实现一个简单的瀑布流列表

实现一个两列的瀑布流布局&#xff0c;支持无限滚动 **思路&#xff1a;**利用flex布局&#xff0c;将列表分为左右两侧&#xff0c;因为这种方式存在一个弊端&#xff0c;就是当有一侧的高度越来越高的时候&#xff0c;滑到底部的时候就会出现一个很明显的高度差&#xff0c;为…

odoo16前端框架源码阅读——rpc_service.js

odoo16前端框架源码阅读——rpc_service.js 先介绍点背景知识&#xff0c;这样方便阅读代码。 一、 JSONRPC的规范 https://www.jsonrpc.org/specification 中文翻译版本&#xff1a;https://wiki.geekdream.com/Specification/json-rpc_2.0.html JSON-RPC是一个无状态且轻…

使用swagger-typescript-api

引言 前后端分离大致是这样的 后端&#xff1a;控制层 / 业务层 / 数据操作层前端&#xff1a;控制层 / 视图层 前后端的控制层&#xff0c;实际上就是前后端接口的对接 前后端分离&#xff0c;实现了更好地解耦合&#xff0c;但也引入了接口对接的过程&#xff0c;这个过程…