目录


静态文件

一、概念

  • 静态文件:不经常变化的文件,主要针对html文件所使用到的各种资源。
  •   例如:css文件、js文件、img文件、第三方框架文件

ps: Django针对静态文件资源需要单独在根目录创建一个static目录统一存放,该目录下的文件类型还有很多,例如:utils目录,plugins目录,libs目录等

  • 资源访问:我们的浏览器地址栏之所以可以使用路由获取到相应的资源是因为程序员提前开设了资源的接口。
  • 静态文件资源访问:默认情况下无法访问,因为我们没有提前开设静态文件资源的访问接口。

二、静态文件的相关配置

  • 先把提前下载好的第三方前端框架cv到static目录下

  • 在settings.py文件的最下面找到STATIC_URL = '/static/',在其下面加上STATICFILES_DIRS存储静态文件资源的目录名称

  • 接口前缀

STATIC_URL = '/xxx/'  # 访问静态文件资源的接口前缀(通行证)
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'), # 存储静态文件资源的目录名称
os.path.join(BASE_DIR, 'static1'), # 存储静态文件资源的目录名称
os.path.join(BASE_DIR, 'static2'), # 存储静态文件资源的目录名称
]
'''
接口前缀正确之后 会拿着后面的路径依次去到列表中自上而下查找 一旦找到就返回
'''

  • 接口前缀的动态匹配
    在HTML文件中:
{% load static %}
<script src="{% static '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>
  • 在浏览器的地址栏就可以获取静态文件的资源

form表单

一、基本属性

  • action属性: 控制数据提交的地址
  •   1.action=""  数据默认提交给当前页面所在的地址
  •   2.action="https://www.baidu.com/"  完整地址
  •   3.action="/index/"  朝当前服务端的index地址提交
  • method属性: 控制数据提交的方法
  •   默认是		get
  •   可以改		post	  method="post"
  • enctype属性:enctype就是encodetype就是编码类型的意思。multipart/form-data是指表单数据中由多部分构成,既有文本数据,又有文件等二进制数据。
  •   默认是		enctype="application/x-www-form-urlencoded"
  •   可以改		enctype="multipart/form-data"

PS:默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。

二、get和post区别

  • 功能不同

1、get是从服务器上获取数据。

2、post是向服务器传送数据。

  • 过程不zhi同

1、get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。

2、post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

  • 获取值不同

1、对于get方式,服务器端用Request.QueryString获取变量的值。

2、对于post方式,服务器端用Request.Form获取提交的数据。

  • 传送数据量不同

1、get传送的数据量较小,不能大于2KB。

2、post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

  • 安全性不同

1、get安全性非常低。

2、post安全性较高。

三、前期如果要发送post请求需要主要要去配置文件注释一行CSRF的代码行

request对象

- 方法的基本使用
- request.method 获取请求方式 结果是纯大写的字符串数据GET\POST
- request.POST 获取post请求请求体里面携带的数据
- request.POST.get() 获取列表最后一个数据值
- request.POST.getlist() 获取整个列表数据
- request.GET 获取网址问号后面携带的数据
- request.GET.get() 获取列表最后一个数据值
- request.GET.getlist() 获取整个列表数据
  • 在视图函数中针对不同的请求代码编写套路
if request.method == 'POST':
return HttpResponse()
return HttpResponse()

四、pycharm和Django连接MySQL

一、pycharm连接MySQL

  • 首先找到MySQL

  • 然后输入相关数据连接即可



    PS: 在第一次连接需要手动下载驱动,在连接之前最好先测试一下是否可以连接成功

二、Django连接MySQL

  • sqllite3:django自带的sqlite3是一个小型的数据库 功能比较少 主要用于本地测试,所以我们实际项目中都会替换掉它
  • 默认配置sqlite3

  • 修改配置文件 (无需将上面默认的删除,注释修改即可)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'day51',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '123',
'CHARSET': 'utf8'
}
}
  • 需要指定模块
  1. django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
    	import pymysql
pymysql.install_as_MySQLdb()
  1. django2.X及以上都可以直接通过下载mysqlclient模块解决

    pip3.8 install mysqlclient

    ps:该模块windows下载问题不大 主要是mac电脑可能有问题

ORM

一、ORM简介

  • ORM:对象关系映射,能够让不会SQL语句的python程序员 使用python面向对象的语法来操作数据库。

  •   类					 表
  •   对象					 一条条数据
  •   对象点名字				 数据获取字段对应的值

PS:ORM由于高度封装了SQL 所以有时候效率较低 我们需要自己写SQL

  • ORM基本操作
  1. 首先在models.py中编写模型类
class UserInfo(models.Model):
# id int primary key auto_increment
id = models.AutoField(primary_key=True) # 字段名 = 字段类型+约束条件
# name varchar(32)
name = models.CharField(max_length=32)
# age int
age = models.IntegerField()
# password varchar(32)
password = models.CharField(max_length=64)
  1. 执行数据库迁移相关命令
  • python38 manage.py makemigrations 将操作记录到小本本上(migrations)

  • python38 manage.py migrate 将操作同步到数据库上

  • 可以看见数据库已经被建好

** PS: 注意每次在models.py修改了与数据库相关的代码 都需要再次执行上述命令**

注:前期不熟悉,建议写完整的语法,后期熟练可以偷懒

  • ORM初识基本语句(后面还会有详细)
  • 主要在views写功能的时候使用,注意要先导入models文件
from app01 import models
models.类名.objects.create() # 增
models.类名.objects.filter() # 查
models.类名.objects.update() # 改
models.类名.objects.delete() # 删

Django 静态文件 request对象方法 pycharm和Django连接MySQL Django模型层初步了解 基本的ORM操作的更多相关文章

  1. Django框架三板斧本质-jsonResponse对象-form表单上传文件request对象方法-FBV与CBV区别

    目录 一:视图层 2.三板斧(HttpResponse对象) 4.HttpResponse() 5.render() 6.redirect() 7.也可以是一个完整的URL 二:三板斧本质 1.Dja ...

  2. django三板斧与request对象方法与ORM

    目录 django三板斧 HttpResponse() render() redirect() 网页获取静态文件样式 request对象方法 post请求问题 针对get请求和post请求执行不同代码 ...

  3. Django视图层/FBV与CBV/jsonResponse对象/form表单上传文件/request对象获取文件

    目录 虚拟环境 视图层views 三板斧 jsonResponse对象 form如何上传文件/request对象获取文件 request对象方法 FBV与CBV CBV源码解析 虚拟环境 每创建一个虚 ...

  4. [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]

    [Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...

  5. Django学习——静态文件配置、request对象方法、pycharm如何链接数据库、Django如何指定数据库、Django orm操作

    静态文件配置 # 1.静态文件 网站所使用的已经提前写好的文件 css文件 js文件 img文件 第三方文件 我们在存储静态文件资源的时候一般默认都是放在static文件夹下 # 2.Django静态 ...

  6. HttpResponse,render,redirect,静态文件配置,request对象方法,pycharm连接MySQL,django连接MySQL,django ORM

    HttpResponse 主要用于返回字符串类型的数据 def index(request): return HttpResponse('index页面') 在页面中就会显示 index页面 rend ...

  7. Django静态文件配置(from表单-request对象方法-get请求与post请求-视图函数书写)

    目录 一:静态文件配置 1.静态文件配置 2.什么是静态文件? 3.静态文件的创建 4.解决使用django后端代码修改前端不显示(缓存问题) 5.settings.py 静态文件配置 6.静态文接口 ...

  8. Django静态文件配置-request方法-ORM简介-字段的增删改查

    app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 ...

  9. django静态文件配置

    开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等 2. 确保settings.py中的INSTA ...

  10. Django——静态文件配置

    本文目的 最近用django开发项目,发现django的静态文件(js,css和img等)配置比较麻烦,开发环境和生产环境的配置还不一样,这里记录一下,作为备忘.我当前使用的版本是django v1. ...

随机推荐

  1. 9.22 2020 实验 3:Mininet 实验——测量路径的损耗率

    一.实验目的 在实验 2 的基础上进一步熟悉 Mininet 自定义拓扑脚本,以及与损耗率相关的设定:初步了解 Mininet 安装时自带的 POX 控制器脚本编写,测试路径损耗率.   二.实验任务 ...

  2. windows server 2012 AD域服务器的搭建安装 子域的创建加入 客户机加入域环境(Active Directory域)

    1,安装Active Directory域前的准备工作 2,安装Active Directory域 3,加入子域(可选) 4,加入客户机 ******************************* ...

  3. python print 一个进度条

    import time scale=100 print("执行开始".center(scale+28,'-')) start = time.perf_counter() for i ...

  4. You need to run build with JDK or have tools.jar on the classpath.If this occures during eclipse build make sure you run eclipse under JDK as well 错误

    我打开项目报错是这样的  pom.xml jdk配置什么的都是好的    但是还是报错 解决错误 : 1.打开你eclipse的根目录,找到eclipse.ini  这个文件夹打开 2.打开是这个样子 ...

  5. vue3 ThreeJS 引入obj模型过暗的问题

    当我单纯地用MTLLoader引入材质, OBJLoader引入模型并添加到场景中时, 发现模型非常得暗. 需要将环境光的强度设置到3.5左右看起来才比较正常. 但正常情况下环境光的值不应该超出1.  ...

  6. unidbgrid默认列排序

    UniDBGrid -> ClientEvents -> ExtEvents ->... function reconfigure(sender, store, columns, o ...

  7. linux sed 编辑

    只打印不修改内容 sed -n 's/sa/sa123/g' 1.txt  不加n是默认全部输出的意思 sed -n '1p' 1.txt  打印莫一行 sed a i c 表示追加 插入和替换 se ...

  8. 痞子衡嵌入式:我拿到了CSDN博客专家实体证书

    「CSDN」作为中国最具人气的专业 IT 社区,一直是广大 IT 技术博主的主选阵地.这些年 CSDN 在知识付费领域的探索也远远超过其它平台,大家(尤其是创作型博主)对 CSDN 的认可度也越来越高 ...

  9. Java输入与输出语句详细解析

    前言 我们在前面的文章中,学习了如何创建Java文件,也学习了Java里的标识符.运算符.进制等内容.有些同学觉得还不够过瘾,给壹哥发来了好多私信,期待我能够把进度更新的再快一点.这不,新内容这就给大 ...

  10. 最大流应用(Maximum Flow Application)

    1. 二分图匹配(Bipartite Matching) 1.1 匹配(Matching) Def. Given an undirected graph \(G = (V, E)\), subset ...