静态文件配置

1.编写一个用户登录页面
2.静态文件
不怎么经常变化的文件 主要针对html文件所使用的到的各种资源
css文件、js文件、img文件、第三方框架文件
django针对静态文件资源需要单独开始一个目录统一存放
static目录
该目录下如果各种类型的文件都多 还可以继续创建目录
css目录
js目录
img目录
utils目录/plugins目录/libs目录/others目录/不创
3.资源访问
我们在地址栏中之所以可以属于路由获取到相应的资源是因为程序员提前开设了资源的接口
4.静态文件资源访问
默认情况下无法访问 因为我们没有提前开设静态文件资源的访问接口

静态文件相关配置

STATICFILES_DIRS = [os.path.join(BASE_DIR, '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 %}
<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 请求方法补充
get 朝服务端索要数据 也可以携带一些额外的要求
携带额外数据的方式: URL?xxx=yyy&uuu=zzz
问号后面携带数据的大小是有限制(2KB)的并且不能携带敏感数据
post 朝服务端提交数据
携带额外数据的方式: 请求体
请求体携带数据安全性较高并且没有大小限制
前期发送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',
]

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 HttpRespose()
"""

pycharm连接数据库

1.pycharm初次连接数据库  需要下载对应的驱动
2.连接数据库 输入用户名和密码 点刷新
3.修改settings配置 下载一个模块mysqlclient模块

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': '222',
'CHARSET': 'utf8'
}
}
2.需要指定模块
django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
import pymysql
pymysql.install_as_MySQLdb()
django2.X及以上都可以直接通过下载mysqlclient模块解决
pip3.8 install mysqlclient 源错误加 --trusted
ps:该模块 windows下载问题不大 主要是mac电脑可能有问题(如果有问题 改源码 把decode 改成encode)

ORM简介

ORM:对象关系映射
能够让不会SQL语句的python程序员 使用python面向对象的语法来操作数据库
类 表
对象 一条条数据
对象点名字 数据获取字段对应的值 ORM由于高度封装了SQL 所以有时候效率较低 我们需要自己写SQL

ORM基本操作

1.先在models.py中编写模型类
class GirlsInfo(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()
2.执行数据库迁移相关命令
python38 manage.py makemigrations 将操作记录到小本本上(migrations)
python38 manage.py migrate 将操作同步到数据库上(数据库迁移命令)
'''
主要每次在models.py修改了与数据库相关的代码 都需要再次执行上述命令
'''
"""
首次创建django会额外创建很多内部需要用到的表 针对程序员自己创建的表名在表名前面加上应用前缀用于区分多个应用表名可能冲突的情况
"""

ORM基本语句

from app01 import models

if request.method == 'POST':
name = request.POST.get('name')
pwd = request.POST.get('pwd')
# 1.创建数据
# models.GirlsInfo.objects.create(name=name, age=pwd)
# # 2.查询数据
# res = models.GirlsInfo.objects.filter(name=name)
# print(res) # [数据对象,] queryset
# print(res[0])
# print(res[0].id)
# print(res[0].name)
# print(res[0].age)
# 3.修改数据
# models.GirlsInfo.objects.filter(id=1).update(name='阿香',age=18)
# 4.删除数据
models.GirlsInfo.objects.filter(id=3).delete() models.类名.objects.create() 增 insert into
models.类名.objects.filter() 筛选 where
models.类名.objects.filter.update() 改 update
models.类名.objects.filter.delete() 删 delete

python之路46 django request对象 form表单 pycharm连接数据库 ORM简介的更多相关文章

  1. Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request对象方法,属性和Response对象,form表单的上传

    Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request请求对象方法,属性和Response响应对象,form表单的上传 一丶CBV和FBV       在Django中存 ...

  2. Django 中的Form表单认证

    一.Form表单   1.1 Form的几个功能 验证用户数据(显示错误信息) 初始化页面显示内容 HTML Form提交保留上次提交数据 生成HTML标签   1.2 创建表单类Form 1. 创建 ...

  3. 第三百一十一节,Django框架,Form表单验证

    第三百一十一节,Django框架,Form表单验证 表单提交 html <!DOCTYPE html> <html lang="en"> <head& ...

  4. Django组件之Form表单

    一.Django中的Form表单介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入 ...

  5. Django框架 之 Form表单和Ajax上传文件

    Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...

  6. the django travel three[form表单验证]

    一:表单验证: 场景:因为浏览器的js可以被禁用,所以需要做后台的输入合法的验证. A:ajax发请求.需要注意的是ajax POST的数据的key值和form表单的里的字段名字一致,否则得不到验证! ...

  7. 九 Django框架,Form表单验证

    表单提交 html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  8. Django中的Form表单

    Django中已经定义好了form类,可以很容易的使用Django生成一个表单. 一.利用Django生成一个表单: 1.在应用下创建一个forms文件,用于存放form表单.然后在forms中实例华 ...

  9. Django中的Form表单验证

    回忆一下Form表单验证的逻辑: 前端有若干个input输入框,将用户输入内容,以字典传递给后端. 后端预先存在一个Form表单验证的基类,封装了一个检测用户输入是否全部通过的方法.该方法会先定义好错 ...

  10. Django基础之Form表单验证

    Form表单验证 1.创建Form类(本质就是正则表达式的集合) from django.forms import Form from django.forms import fields from ...

随机推荐

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

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

  2. Vue学习之--------列表渲染、v-for中key的原理、列表过滤的实现(2022/7/13)

    文章目录 1.基本列表 1.1 基本知识 1.2 代码实例 1.3 测试效果 2.key的原理 2.1基本知识 2.2 代码实例 2.3 测试效果 2.4 原理图解 3.列表过滤 3.1 代码实例 3 ...

  3. salesforce零基础学习(一百二十)快去迁移你的代码中的 Alert / Confirm 以及 Prompt吧

    本篇参考: https://developer.salesforce.com/blogs/2022/01/preparing-your-components-for-the-removal-of-al ...

  4. 2022,一个Java程序猿的装机配置

    起因 工作一年,身边的老同学都在让我推荐适合他们需求的PC主机.于是仔细研究了一下当下的主机配置.成功试水并积攒了经验后,也给自己装了我的第一台PC主机. 主机配置 CPU:12700 主板:华硕TU ...

  5. C#使用附加到进程调试

    微软官网的调试进程介绍 首先运行bin下的可执行文件,然后打开源代码,选择调试--->附加到进程.

  6. Apache ShenYu 集成 RocketMQ 实时采集海量日志的实践

    本文作者:胡泰室, 快手Java开发工程师. ​ 认识Apache ShenYu(神禹) 网关最重要的是流量治理,而流量治理与大禹治水有很多相似的地方,因此,网关的流量治理项目被命名为神禹. Shen ...

  7. 渗透测试中遇到的Adminer任意文件读取漏洞

    渗透测试中遇到的Adminer任意文件读取漏洞 免责声明: 软件简介 漏洞原理 漏洞复现 字典脚本 直接输入文件读取脚本 直接输入文件绝对路径读取脚本使用方法 字典脚本使用方法 免责声明: 免责声明: ...

  8. Rust构建环境搭建

    ###安装涉及的概念rustup : 安装rust和管理版本的工具,当前rust尚处于发展阶段,存在三种类型的版本,稳定版.测试版.每日构建版本,使用rustup可以在这三种的版本之间切换,默认是稳定 ...

  9. 重新认识下JVM级别的本地缓存框架Guava Cache——优秀从何而来

    大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 不知不觉,这已经是<深入理解缓存 ...

  10. SpringBoot+hutool工具-数据库数据导出Excel

    hutool文档地址:https://www.hutool.cn/docs/#/ 导入依赖 <dependency> <groupId>cn.hutool</groupI ...