(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请求 六.新手三件套 七.登录功能案例 ...
随机推荐
- 201871010128-杨丽霞《面向对象程序设计(java)》第一周学习总结
201871010128-杨丽霞<面向对象程序设计(java)>第一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...
- 发送get请求接口
一.简介 python做接口测试,我们需要了解和学习第三方库requests.python内置的urllib模块,也用于访问网络资源,但是使用较麻烦,而且缺少很多实用的高级功能.这里推荐使用reque ...
- C#中char[]与string之间的转换;byte[]与string之间的转化
目录 1.char[]与string之间的转换 2.byte[]与string之间的转化 1.char[]与string之间的转换 //string 转换成 Char[] string str=&qu ...
- 《转》crontab 定时任务
命令格式 crontab [-u user] file crontab [-u user] [-e | -l | -r | -i ] 命令参数 -u user:用来设定某个用户的crontab服务,例 ...
- golang和swoole区别
golang和swoole区别 开发效率 Go语言是本质上是静态语言,开发效率稍差,但性能更强,更适合底层软件的开发 Swoole使用PHP语言,动态脚本语言,开发效率最佳,更适合应用软件的开发 IO ...
- 避免python二维列表append一维列表时浅拷贝问题
原始问题: 由于浅拷贝原因,使得当a列表变动时,b列表也发生变动 解决办法: 如上图所示,添加的时候添加新列即可,类似新建一个列表,使得与原有列表a不共用同一个内存
- nginx-配置文件样例
1, 总配置文件 user nobody nobody; worker_processes ; worker_rlimit_nofile ; error_log /etc/nginx-idfa/log ...
- 前端之jquery1
jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. ...
- 在Asp.net Razor Pages/MVC程序中集成Blazor
今天试了一下在Asp.net core Razor Pages/MVC程序中集成Blazor(Server-side),还是可以完美整合的,这里以Razor Pages为例(.net core 3.1 ...
- arcgis api for javascript 学习(二) 发布并调用地图切片
文章将从发布切片地图到调用切片地图整个过程都展示出来. (一).切片地图的发布 1.还是前面的arcgis展示的地图 2.与发布动态地图前面的步骤是一样的 打开分享后,如图 3.一切就绪后,到达缓存的 ...