目录


静态文件

一、概念

  • 静态文件:不经常变化的文件,主要针对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. 磊磊零基础打卡算法:day19 c++字符串hash

    5.22 字符串hash: 字符哈希串的意思 其实就是将字符串的前缀转换为数来存值由于每位的权值是不一样的 所以每个前缀值都对应着唯一的一种字符串: 主要用途:字符串/数据的比较,是kmp的一种替代: ...

  2. C# 图片 等 文件 读取操作 的一点提示

    源于:在读取图片时,总喜欢首先采用:Image img=Image.FromFile("");操作,这种方式由于 调用图片的程序与图片文件是通过 绝对地址关联的,会造成 当前进程或 ...

  3. [Cisco][GNS3]Install IOU device in GNS3

    1. 下載並安裝GNS3 下載位置 https://gns3.com/software 安裝 gns3-all-in-one 部屬GNS3 VM至virtualbox 下載並安裝VIX API htt ...

  4. Integer类自动拆箱,装箱解析

    1.自动拆箱 例1: int i1 = 10; Integer i2 = new Integer(10); System.out.println(i1 == i2); 这个结果是true i1为基本数 ...

  5. 探究Tomcat

    一.什么是Tomcat? 用来装载javaWeb程序,可以称它为Web容器.是一个运行java的网络服务器,底层是Sochet的一个程序,他也是JSP和Servlet的一个容器. 二.什么要用Tomc ...

  6. C语言编译概念理解

    1.编译与CPU.操作系统的联系 参考:https://blog.csdn.net/dong_daxia/article/details/95328479?ops_request_misc=%257B ...

  7. 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.打开是这个样子 ...

  8. DRF_基本使用

    基本使用 视图内 from rest_framework.viewsets import ModelViewSet from app01 import models from app01 import ...

  9. 非常有用的python单行代码

    1 推导式应用 1.1 列表推导式(一行for循环) #For循环在一行 mylist = [200, 300, 400, 500] #正常方式 result = [] for x in mylist ...

  10. 基于 HLS 创建 Golang 视频流服务器

    HLS 是 HTTP Live Streaming 的缩写,是苹果开发的一种基于 HTTP 的自适应比特率流媒体传输协议, 并于 2009 年. HLS 流媒体已经成为应用最广泛的实时视频协议.它是一 ...