(day50)二、文件配置、ORM
目录
一、静态文件
(一)配置html文件
默认情况下,所有的html文件都放在templates文件夹下
配置文件夹路径
'DIRS': [os.path.join(BASE_DIR, 'templates')]TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
(二)什么是静态文件
网站所使用的到的提前写好的css、js、第三方的前端模块、图片等修饰html文件的都叫做静态资源
默认情况下网站所用到的静态文件资源全部会放在static文件夹下
通常情况下static文件夹内部还会再建其他文件夹:
- css文件夹
- js文件夹
- font文件夹
- img文件夹
- Bootstrap
- fontawesome
(三)静态文件配置
django中需要手动创建静态文件存放的文件夹
STATIC_URL = '/static/' # 访问静态资源接口前缀,通常情况下接口前缀的名字也叫static
# 手动配置静态文件访问资源
STATICFILES_DIRS = [ # 静态资源所在的文件夹路径
os.path.join(BASE_DIR,'static') # 将static文件下的资源暴露给用户
]
(四)静态文件动态绑定
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.css'%}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.js' %}"></script>
(五)form表单POST请求配置
get请求可以携带参数
http://127.0.0.1:8000/login/?username=wick&password=123特点:url?xxx=xxx&yyy=yyy
- 携带的数据不安全
- 携带的数据大小有限制,最大好像在4kb左右
- 通常携带不安全的数据
action
- 不写,默认向当前地址提交
- 只写后缀,/index
- 写全路径
提交post请求返回403
需要配置文件中注释一行
# 中间件 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', ]django后端的视图函数默认处理get请求,无论是get还是post请求,都会执行视图函数
二、request方法初识
(一)request.method
获取请求方式,纯大写的字符串
(二)request.POST
获取用户提交的post请求数据
- 获取数据
- request.POST.get():默认获取最后一个元素
- request.POST.getlist():
(三)request.GET
获取用户提交的get请求携带的参数
- 获取数据
- request.GET.get():默认获取最后一个元素
- request.GET.getlist():
三、django连接MySQL
(一)配置数据库
settings.py文件中设置DATABASES参数:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 指定数据库类型
'NAME': 'day49', # 指定库的名字
'USER':'root', # 注意 键必须是全大写
'PASSWORD':'123qwe',
'HOST':'127.0.0.1',
'PORT':3306,
'CHARSET':'utf8'
}
}
(二)配置连接模块
django默认使用mysqldb模块连接,需要手动配置文件使用pymysql模块
- 项目名下的init文件
- 文件名下的init文件
# 上面的init文件中设置(无论哪一个都行,只要设置一个就可以了)
import pymysql
pymysql.install_as_MySQLdb()
四、django ORM简介
(一)ORM
对象关系映射
- 类映射表
- 对象映射数据
- 对象.属性映射字段对应的值
(二)优缺点
优点
让不会数据库操作的人也能够简单的去从操作数据
缺点
封装程度太高,有时候会出现查询速率偏低的问题
所以工作中,简单的用orm,复杂的,追求速度的则手动书写sql语句
(三)配置orm
书写模型类
应用下model.py中书写模型类
一个django项目对应一个数据库
(四)数据库迁移(同步)命令
只要models中和数据库相关的代码修改了,就要重新执行下面命令
python3 manage.py makemigrations
记录数据库的修改
python3 manage.py migrate
将修改操作同步到数据库
五、模型表字段的增删改查
(一)字段的修改
直接修改models中的模型类代码,再执行两条迁移命令
# 方式1 设置默认值
email = models.EmailField(default='123.qq.com')
# 方式2 允许字段为空
phone = models.BigIntegerField(null=True)
# 直接在提示中给默认值
gender =models.CharField(max_length=32)
(二)字段的删除
直接注释或删除对应的字段,然后再执行迁移命令(谨慎使用)
六、模型表数据的增删改查
(一)增
create方法会有一个返回值,返回值就是当前被创建的对象本身
user_obj = mpdels.User.objects.create(username=username,password=password)
print(user_obj,user_obj.username,user_obj.password)
(二)删
- delete:会将filter查询出来的列表中所有的对象全部删除
- 一般情况下不会使用,会使用标记删除
models.User.objects.filter(id=delete_id).delete()
(三)改
update:会将filter查询出来的列表中的所有对象全部更新,
models.User.objects.filter(id=edit_id).update(username=username)
models.User.objects.filter(id=edit_id).first().update(username=username) # 报错
(四)查
- filter括号内可以放多个关键字参数,关键字参数之间是and关系,返回的是一个“列表”
- all:查询所有
data = models.User.objects.filter(username=username)
user_list = models.User.objects.all()
# 相当于 models.User.objects.filter()
(day50)二、文件配置、ORM的更多相关文章
- mysql之存储引擎和文件配置
(查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...
- (day53)五、模型层(ORM)、settings文件配置
目录 一.settings配置 (一)测试文件配置 (二)查看对应sql语句 二.模型表数据的增删改查 (一)创建数据 (1)create方法 (2)利用对象的绑定方法 (二)修改数据 (1)利用qu ...
- Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点)
Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点) 一丶Django的静态文件配置 #we ...
- [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]
[Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...
- Django基础二静态文件和ORM
Django基础二静态文件和ORM 目录 Django基础二静态文件和ORM 1. 静态文件 1.1 静态文件基本配置: 1.2 静态文件进阶配置 2. request参数 3. Django配置数据 ...
- HttpResponse,render,redirect,静态文件配置,request对象方法,pycharm连接MySQL,django连接MySQL,django ORM
HttpResponse 主要用于返回字符串类型的数据 def index(request): return HttpResponse('index页面') 在页面中就会显示 index页面 rend ...
- 基于python的接口测试框架设计(二)配置一些参数及文件
基于python的接口测试框架设计(二)配置一些参数及文件 我这里需要基于我的项目配置的主要是登陆参数.以及baseURL ,把这些放在单独的文件里 毕竟导入的时候方便了一些 首先是url 图略 建 ...
- Django框架(二)-- 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get
一.app 在Django中,APP可以用以下类比 大学 --------------------项目 计算机学院------------app01 土木学院 ------------ app02 1 ...
- Django框架(二)—— 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get
目录 app注册.模板配置.静态文件配置.数据库连接配置post和get 一.app 二.模板配置 三.静态文件配置 四.数据库连接配置 五.get请求和post请求 六.新手三件套 七.登录功能案例 ...
随机推荐
- java给图片写正反字体,并将二维码写到图片上,代码实现
/** * @param filePath * 源图片路径 * @param markContent * 图片中添加内容 * @param outPath * 输出图片路径 字体颜色等在函数内部实现的 ...
- Mac下MongoDB配置与操作
1.环境配置 Xcode安装 2.下载安装包 官网地址是:MongoDB Download Center | MongoDB 3.解压文件, 将文件放置/usr/local 4.配置环境变量 open ...
- Paper | Deep Mutual Learning
目录 1. 动机详述和方法简介 2. 相关工作 3. 方法 3.1 Formulation 3.2 实现 3.3 弱监督学习 4. 实验 4.1 基本实验 4.2 深入实验 [算法和公式很simple ...
- H5纯前端生成Excel表格
H5纯前端生成Excel表格方法如下: <!DOCTYPE html> <html> <head> <title></title> < ...
- PHP框架 fastadmin 根据条件判断字段的显示隐藏
首先,因为fastadmin的JS里面字段不支持function函数 里面只能填false或true,不能动态判断显示隐藏, 后面通过看文档发现能在表格初始化的地方判断 如图,就可以实现根据lin ...
- mysql压缩备份导入导出
mysqldump工具自带选项没有对导出备份文件压缩功能,可结合gzip只使用一条命令压缩导出文件,方法如下: mysqldump压缩导出:# mysqldump -h192.168.0.3 -P33 ...
- 框架基础:深入理解Java注解类型(@Annotation)
注解的概念 注解的官方定义 首先看看官方对注解的描述: An annotation is a form of metadata, that can be added to Java source co ...
- 前端之jquery1
jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. ...
- Python数据分析揭秘知乎大V的小秘密
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 清风小筑 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...
- python验证码识别(2)极验滑动验证码识别
目录 一:极验滑动验证码简介 二:极验滑动验证码识别思路 三:极验验证码识别 一:极验滑动验证码简介 近些年来出现了一些新型验证码,不想旧的验证码对人类不友好,但是这种验证码对于代码来说识别难度上 ...