(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请求 六.新手三件套 七.登录功能案例 ...
随机推荐
- 201871010113-刘兴瑞《面向对象程序设计(java)》第八周学习总结
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>htt ...
- 设计模式-State(行为模式)-很好的实现了对象的状态逻辑与动作实现的分类,状态逻辑在State的派生类实现,动作可以放在Context类中实现。
以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //Context.h #pragma once class State; class Context { public: C ...
- Java连载47-多态基础语法、作用
一.多态的语法 1.两个类之间没有继承关系的,使用多态是不能编译的. 2.无论向上还是向上转型,都需要有继承关系. 3.什么时候需要向下转型? 当调用的方法或者属性是子类型特有的,在父类型中不存在,就 ...
- Mac OSX vim配色方案选择
首先查看系统自带的vim配色种类: ls /usr/share/vim/vim73/colors 大致输出如下: README.txt default.vim elflord.vim morning. ...
- C语言程序设计100例之(13):最大子段和
例13 最大子段和 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大.例如在序列2,-4,3,-1,2,-4,3中,最大的子段和为4,该子段为3,-1,2. 输入格式 第一 ...
- 世界GDP数据可视化
各国GDP数据可视化 数据来自世界银行 导入资源包,如下: Pandas, numpy, seaborn 和 matplotlib import pandas as pd import numpy a ...
- Linux 内存释放
简介 linux 内存释放通过如下命令,将cache与buff根据环境进行释放操作,避免重启释放内存. 操作 1.将内存中buff数据保存磁盘 sync 2.清理cache与buff缓存 echo 3 ...
- SpringBoot 和Vue前后端分离入门教程(附源码)
作者:梁小生0101 juejin.im/post/5c622fb5e51d457f9f2c2381 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计 ...
- solidity智能合约implicit conversion异常
问题场景 在使用^0.5.10版本的solidity时,如果使用this关键字会出现以下问题. 代码: require(tokenContract.balanceOf(this) >= _num ...
- WPF属性绑定实现双向变化
WPF依赖项属性可以实现属性的绑定,成功绑定之后只要修改后台绑定的属性,即可UI同步自动更新绑定的值,无需手动刷新界面:同样,前台的值变化后,通过获取绑定的属性值也可获取UI变化后的值,实现双向变化的 ...