Django知识点

news/2024/7/5 2:29:32

目录

一、三板斧的使用

二、全局配置文件

三、静态文件的设置

四、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 = True

USE_L10N = True

USE_TZ = False

DATABASES = {
    '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://lihuaxi.xjx100.cn/news/1771629.html

相关文章

html实现竖直步骤条

1、问题描述 最近碰到一个需求&#xff0c;要把审批流程改为竖直步骤条的形式。本来想直接抄网上的&#xff0c;但是网上给的要么是水平步骤条&#xff0c;要么是集成在框架里的&#xff0c;要么就是人家写的太复杂了&#xff0c;js&#xff0c;css一大堆。 2、我的代码 代码下…

pytest + yaml 框架 -58.运行报告总结summary.json

前言 用例运行结束后&#xff0c;在本地生成summary.json 文件&#xff0c;总结运行结果。 v1.5.1版本更新内容&#xff1a; 1.解决参数化&#xff0c;中文在控制台输出问题 2.保存用例结果summary.json 保存用例结果summary.json 命令行执行用例 pytest运行结束&#xff0…

HTTP协议详解-下(Tomcat)

如何构造 HTTP 请求 对于 GET 请求 地址栏直接输入点击收藏夹html 里的 link script img a…form 标签 通过 form 标签构造GET请求 <body><!-- 表单标签, 允许用户和服务器之间交互数据 --><!-- 提交的数据报以键值对的结果来组织 --><form action&quo…

Python--列表及其应用场景

1.为什么需要列表 思考&#xff1a;有一个人的姓名(laowang)怎么书写存储程序&#xff1f; 用 变量。如&#xff1a;name laowang 但是&#xff0c;如果要记录很多人的名字&#xff0c;怎么办&#xff1f; 思考&#xff1a; 如果一个班级100位学生&#xff0c;每个人的…

C++中的函数重载:多功能而强大的特性

引言 函数重载是C编程语言中的一项强大特性&#xff0c;它允许在同一个作用域内定义多个同名函数&#xff0c;但这些函数在参数类型、个数或顺序上有所不同。本文将深入探讨函数重载的用法&#xff0c;以及它的优势和应用场景。 正文 在C中&#xff0c;函数重载是一项非常有…

遍历List集合和Map进行修改和删除报java.util.ConcurrentModificationException错误详解

一、异常产生 当我们使用foreach迭代一个ArrayList或者HashMap时&#xff0c;如果尝试对集合做一些修改操作&#xff08;例如删除元素或新增&#xff09;&#xff0c;可能会抛出java.util.ConcurrentModificationException的异常。 javapublic static void main(String[] args)…

解决方案 |法大大电子合同推动汽车后市场多元数智化发展

近日&#xff0c;商务部等9部门联合发布《关于推动汽车后市场高质量发展的指导意见》&#xff08;以下简称《指导意见》&#xff09;&#xff0c;明确了汽车后市场发展的总体目标和主要任务&#xff0c;系统部署推动汽车后市场高质量发展&#xff0c;促进汽车后市场规模稳步增长…

【使用python绘制统计图表】

在Python中&#xff0c;我们通常使用matplotlib&#xff0c;pandas&#xff0c;和seaborn等库来绘制统计图表。 A.以下是一些示例&#xff1a; 首先&#xff0c;确保你已经安装了这些库。如果没有&#xff0c;可以使用以下命令进行安装&#xff1a; pip install matplotlib …