静态文件配置

  1. 编写一个用户登入页面

  2. 静态文件:不怎么经常变化的文件 主要针对html文件所使用的到的各种资源

    有:CSS文件、JS文件、img文件、第三方框架文件

django针对静态文件资源需要单独开始一个目录统一存放

static目录

该目录下如果各种类型的文件都多 还可以继续创建目录
如:
CSS目录
js目录
img目录
utils目录/plugins目录/libs目录/others目录/不创
  1. 资源访问:我们在地址栏中之所以可以输入路由获取到相应的资源是因为程序员提前开设了资源的接口

  2. 静态文件资源访问:默认情况下是无法访问的 因为我们没有提前开设静态文件资源管理的访问接口

静态文件相关配置

本地手动配置的Bootstrap静态资源是无法加载 因为本地去没有配置

去setings.py中添加STATICFILES_DIRS = [os.path.join(BASE_BIR, 'static')]

1.接口前缀

STATIC_URL = '/xxx/'  # 访问静态文件资源的接口前缀(通行证)
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'), # 存储静态文件资源的目录名称
os.path.join(BASE_DIR, 'static1'), # 存储静态文件资源的目录名称
os.path.join(BASE_DIR, 'static2'), # 存储静态文件资源的目录名称
]

接口前缀正确之后 会拿着后面的路径依次去到列表中自上而下的查找 一旦找到就返回(前缀对了才有资格访问静态目录下的资源 谁先就是谁 类似于环境变量的查找顺序)

浏览器停用缓存

(浏览器会自动检测到已经请求过的页面 就不会请求加载了 用的就是缓存)

2.接口前缀动态匹配

当要自定义接口前缀的时候

{% load static %}  # Django提供的模板语法
<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/" 等价于127.0.0.1:8000/index 朝当前服务端的index地址提交

method 控制数据提交的方法

默认是get(索要获取到数据) 可以改post(提交数据)

ps: 注意标签中name要有属性 否则无法提交数据的

请求方法补充

get: 朝服务端索要数据 也可以携带一些额外的要求

携带额外数据的方式:URL?xxx=yyy&uuu=zzz
问号后面携带数据的大小是有限制(2KB)的并且不能携带敏感数据

都是些明文数据用户和密码

get索要数据URL ?号后面跟的额外限制条件

post 朝服务端提交数据的方式

携带额外数据的方式:请求体(请求体携带数据安全性较高并且没有大小限制)

method修改成post提交报错 403访问权限不够

前期发送post请求需要注释掉settings.py配置文件中的某一行

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',
]

在输入用户名与密码就不会有显示这些用户相关的敏感信息了

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连接数据库

1.pycharm初次连接数据库 需要下载对于的驱动

2.参考截图操作即可

不行就更换驱动



操作鼠标点点

django连接数据库

django自带的sqlite3是一个小型的数据库 功能比较少 主要用于本地测试

默认配置的sqlite3
我们实际项目中都会替换掉它
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

1.修改配置文件

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'day51',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '123',
'CHARSET': 'utf8'
}
}

启动会报错 需要指定模板



)

2.指定模块

	django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
import pymysql
pymysql.install_as_MySQLdb()

django2.X及以上都可以直接通过下载mysqlclient模块解决

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

mac报错解决方案:

点击报错到对应行数

ORM简介

ORM:关系对象映射

能够让不会SQL语句的python程序员 使用python面向对象的语法来操作数据库

类					表
对象 一条条数据
对象点名字 数据获取字段对应的值 ORM由于高度封装了SQL 所以有时候效率较低 我们需要自己写SQL

ORM基本操作

1.先在models.py中编写模型类

class GirlsInfo(models.Model):
# 字段名 = 字段类型 + 约束条件
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
age = models.IntegerField()

2.执行数据路迁移相关命令

	python38 manage.py makemigrations  将操作记录到小本本上(migrations)
python38 manage.py migrate 将操作同步到数据库上
'''注意每次在models.py修改了与数据库相关的代码 都需要再次执行上述命令'''

ORM基本语句

from app01 import models
models.类名.objects.create()
models.类名.objects.filter()
models.类名.objects.update()
models.类名.objects.delete()

Django静态文件配置、form表单、request对象、连接数据库、ORM的更多相关文章

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

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

  2. 55 Django静态文件配置

    一.Django静态文件配置 1.项目文件夹,新建一个文件夹statics 文件夹 2.在配置文件settings.py中,配置: 文件中有第句: STATIC_URL = '/static/'#静态 ...

  3. form表单传递对象数组

    ajax传递数组.form表单提交对象数组 在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用 form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致 ...

  4. Django静态文件配置 request对象 Django操作MySQL

    Django中的文件介绍 render.HttpResponse和redirect 当我们想起手写一个项目,创建好应用并且注册之后,在urls.py文件先导入app文件夹下migrations下的vi ...

  5. Django基础,Day5 - form表单投票详解

    投票URL polls/urls.py: # ex: /polls/5/vote/ url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, ...

  6. Django框架获取各种form表单数据

    Django中获取text,password 名字:<input type="text" name="name"><br><br& ...

  7. Django学习系列之Form表单结合ajax

      Forms结合ajax Forms的验证流程: 定义用户输入规则的类,字段的值必须等于html中name属性的值(pwd= forms.CharField(required=True)=<i ...

  8. django静态文件配置

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

  9. Django 静态文件配置 (Nginx)

    初学Django,在访问静态文件时候遇到很多误区,一直配置不成功,在此记录一下. Django静态文件访问分为两种:一种是Debug模式下,测试开发网站时对静态文件的访问,一种是实际生产环境中对静态文 ...

  10. Django——静态文件配置

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

随机推荐

  1. .NET6 JWT(生成Token令牌)

    一.Net 6环境下的.net core项目里如何使用JWT. 第一步,在Nuget引入JWT.Microsoft.AspNetCore.Authentication.JwtBearer这两个NuGe ...

  2. frp服务利用云主机docker服务实现Windows远程连接

    1.云主机配置 1.docker部署 # 创建文件 mkdir -p /root/docker/frp && touch /root/docker/frp/frps.ini # 配置文 ...

  3. DP 优化小技巧

    收录一些比较冷门的 DP 优化方法. 1. 树上依赖性背包 树上依赖性背包形如在树上选出若干个物品做背包问题,满足这些物品连通.由于 01 背包,多重背包和完全背包均可以在 \(\mathcal{O} ...

  4. 驱动开发:内核取ntoskrnl模块基地址

    模块是程序加载时被动态装载的,模块在装载后其存在于内存中同样存在一个内存基址,当我们需要操作这个模块时,通常第一步就是要得到该模块的内存基址,模块分为用户模块和内核模块,这里的用户模块指的是应用层进程 ...

  5. 华为云ubunbu部署.NetCore3.1项目(DDD商城)

    提前项目打包发布,文件传输工具Filezilla,注意是选择sftp协议,将publish文件传到/home文件夹下 第一步  .NetCoreSDK安装 微软官方的文档https://docs.mi ...

  6. C语言常见的八大排序(详解)

    冒泡排序 优点:写起来简单 缺点:运算量过大每两个之间就要比较一次 冒泡排序在一组需要排序的数组中,对两两数据顺序与要求顺序相反时,交换数据,使大的数据往后移,每趟排序将最大的数放在最后的位置上 如下 ...

  7. aws上传文件、删除文件、图像识别

    目录 aws的上传.删除s3文件以及图像识别文字功能 准备工作 安装aws cli 初始化配置AWS CLI s3存储桶开通 图像识别文字功能开通 aws的sdk 上传文件 方法一 方法二 删除文件 ...

  8. 6.ElasticSearch系列之倒排索引

    1. 倒排索引简介 对于书通过目录查找对应章节内容的方式属于正排索引,而对于想查询文本,如我爱中国在书籍中出现的次数与具体位置,则是倒排索引的范畴. 2. 倒排索引核心组成 单词词典(Term Dic ...

  9. 基于数组或链表的学生信息管理系统(小学期C语言程序实训)

    1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...

  10. 谣言检测(RDCL)——《Towards Robust False Information Detection on Social Networks with Contrastive Learning》

    论文信息 论文标题:Towards Robust False Information Detection on Social Networks with Contrastive Learning论文作 ...