静态文件资源
- 1.什么是静态文件
- 静态文件是html页面上使用不经常改变的资源,
1.下载的第三方框架文件 2.img图形类型的文件 3.js类型的文件 4.css样式文件 * 针对不同类型的文件,可以进行分类
- 静态文件是html页面上使用不经常改变的资源,
我们需要对静态文件进行分门别类,方便后续管理,我们需要把所有的静态文件放到static文件夹下,该文件夹需要自己手动创建。对于static下方的静态文件可以按照类型再进行分门别类
- 2.静态文件资源的访问
- 要想访问静态文件资源就需要提前开设该资源相应的接口
* 找到创建的app下的setting文件在下面添加静态资源配置 将: STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ] 添加至 STATIC_URL = '/static/'下面 # 静态文件资源配置是一个列表,意味着我们可以定义多个资源配置 STATIC_URL = '/static/' # 接口前缀 * 接口前缀就类似于一个访问资源时的身份令牌,与资源地址前面要一致,必须要以/static/开头
- 要想访问静态文件资源就需要提前开设该资源相应的接口
- 3.动态解析
* 主要用于接口前缀变更导致的大批量资源地址失效问题 在前端html页面内导入位置加入{% load static %}将资源地址修改为{% static '想找的文件名' %} 例: <link rel="stylesheet" href="/static/bootstrap-3.4.1-dist/css/bootstrap.css"> 修改后: {% load static %} <link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.css' %}"> - 4.案例剖析:
关于Django配置: 1. INSTALLED_APPS = [ 'app01.apps.App01Config', ] # 在INSTALLED_APPS列表中找到该配置,没有需要手动添加app名称['app01',] 2.django启动报错,版本不适配问题 'DIRS': [BASE_DIR / 'templates'] # 修改该环境地址为 'DIRS': [os.path.join(BASE_DIR,'templates')]- 编写一个django的登录项目
- 1.在urls.py中添加一组登录的对应关系
from app01 import views urlpatterns = [ path('login/', views.login') ] - 2.在app下的views.py编写登录的核心逻辑
from django.shortcuts import render,HttpResponse,redirect def login(request): return render(request, 'my01.html') - 3.使用三板斧和前端交互
前端导入js和jquery文件后编写。 前端编写后,我们会发现我们导入的样式全都没有显现,请求资源的时候出现了404。 这是因为,我们没有给请求的资源设置相应的接口,所以找不到资源。
- 1.在urls.py中添加一组登录的对应关系
- 编写一个django的登录项目
请求方法
- 1.GET请求
朝别人索要数据的请求是GET请求,可以携带额外的参数 url?xxx=yyy& GET请求携带数据的方式有两个限制 1.携带的额外参数大小不能超过2KB 2.携带的数据只能是一些无关紧要的非敏感数据 GET请求没有请求体(HTTP数据格式) - 2.POST请求
朝别人提交数据的请求是POST请求,可以携带额外的参数 数据都是放在请求体中的,并且对数据的大小没有限制 * 提交post请求,前期需要去配置setting文件中注释一行代码 # 注释掉 MIDDLEWARE = ['django.middleware.csrf.CsrfViewMiddleware',] - 3.form表单默认的请求方式是GET请求
<form action="" method="post"></form> 修改form表单的请求方式: method="post" 控制数据的提交地址:有三种 action="" 方式1:不写 朝当前页面所在地址提交 方式2:写后缀/index/ 会自动补全ip和port 方式3:写全称 https://www.baidu.com
request对象方法
request.method 该方法可以获取请求方式(GET/POST)纯大写
POST请求:
request.POST 获取POST请求发送来的普通数据(不包含文件)
# 获取到的值是一个字典形式的数据(键必须存在)
request.POST.get() 不指定,默认只获取字典里面列表中最后一个数据
request.POST.getlist() 默认获取键对应的整个列表,有几个拿几个,也可以在括号内填写索引值
GET请求:
request.GET 获取URL后面携带的非敏感数据
request.GET.get() 不指定,默认只获取列表中的是最后一个
request.GET.getlist() 获取键对应的整个列表,有几个拿几个
使用pycharm连接数据库
- 1.右上角或左下角的database
- 2.选择要连接的数据库
- 3.第一次连接数据库需要点击download下载配置文件,弹出一个提示框就重新下载试试
- 4.填写数据库用户名和密码与库名(已有的库)点击ok即可
- 5.简单操作
Django连接数据库
django默认使用的是sqlite3 但是这款数据库一般只用于本地测试,功能较少
- 1.django连接数据库,需要先去配置文件中修改配置
- 原来的配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } - 修改后的配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 指定数据库软件名称 'NAME': 'mypycharm', # 指定库名 'USER': 'root', # mysql账户名 'PASSWORD': '', # mysql密码 'HOST': '127.0.0.1', # 本机地址 'PORT': '3306', # mysql默认端口号 'CHARSET':'utf8' # 字符编码 } } - 2.关于修改配置后终端运行仍然报错
- 我们需要指定链接的MYSQL模块
* 1. django1.1版本: 直接在app应用目录下的__init__.py中编写代码 import pymysql pymysql.install_as_MySQLdb() * 2. django2.2版本往上: 需要使用mysqlclient模块 Terminal终端开启输入指令 pip3.8 install mysqlclient
- 我们需要指定链接的MYSQL模块
- 原来的配置