Django第二篇

django第二篇

1.静态文件配置

接口前缀:

​ STATIC_URL = '/static/'

跟静态文件夹的名字没有关系,默认情况下这个前缀跟静态文件夹名字一样

文件配置

STATICFILES_DIRS = [

​ os.path.join(BASE_DIR,'static')

]

'static':就是你的静态文件夹路径,可以设置多个,会依次查找列表中所有的静态文件路劲,找到就停止,都没有的话返回404(资源不存在)

2.form表单操作

form表单触发提交数据的动作两种方式:

<input type='submit'><button></button>

form表单提交数据地址的指定及方式:

​ action属性控制提交的地址

方式一:全路径

<form action='http://127.0.0.1:8000/login/'>

方式二:只写路劲后缀

<form action='/login/'>

方式三:不写(默认往当前路劲提交)

注意:利用a标签href属性可以指定页面跳转的路劲,href可以写全路劲,但是推荐写后缀即可

<a href='/login/' class='btn btn-success'>登入</a>

两种请求方式(form表单默认是get请求)

#根据客户端请求方式的不同执行不同的逻辑代码
def login(request):#获取客户端的请求方式print(request.method) #注意是全大写的字符串if request.method == 'POST':return HttpResponse('ok')return render(request,'login.html')

获取请求方式中携带的参数

def login(request):if request.method == 'POST':print(request.POST)  #里面存放了客户端post提交的所有数据,可以看成是一个大字典,{'username':['lucas'],'password':['123']}print(request.POST.get('username')) #value虽然是一个列表,但是获取值得时候拿到的是单个元素,默认只会取列表里的最后一个元素print(requet.POST.getlist('username'))  #一次性获取value列表里的所有数据,应用场景可以是用户的爱好,多选框   #get请求的取值方式和post一样

3.django连接数据库

修改配置文件

DATABASES = {'default':{'ENGINE':'django.db.backends.mysql','NAME':'day54', #库名'HOST':'127.0.0.1','POST':3306,'USER':'root','PASSWORD':'123'}
}
#注意:键必须是大写

替换

​ 告诉Django用pymysql替换它,默认mysqldb模块连接数据库

​ 方式一:在项目文件夹下面的__init__.py

​ 方拾二:在应用文件夹下的__init__.py

#固定写法
import pymysql
pymysql.install_as_Mysql()

4.orm简单操作

orm简介

​ orm:对象关系映射,简单来说就是类对应数据库中的一张表,类对象对应表记录,对象的属性对应某条记录的值

​ django的orm不能自动创建库,但是可以自动创建表

​ 小提示:一个django项目就使用一个库,不要多个django项目使用一个库

数据库迁移(同步)命令

​ 在models创建好类之后,还需要两个命令:

1635178-20190606213742848-2051900155.jpg

​ python3(当前所用解释器名称) manage.py makemigrations:将数据库变动记录到文件中

​ python3 manage.py migrate:将数据库变动同步到数据库中

5.操作数据库

User表插入数据

方式一:

user_obj = models.User.objects.create(name=username,password=password)
#create方法有一个返回值,就是当前新增的数据对象本身

方式二:

user_obj = models.User(name=password,password=password)
user_obj.save()

查询数据

获取User表所有的数据
user_list = models.User.objects.all() #获取user表所有的数据

1635178-20190606213755364-774355220.jpg

上图中的user_list是QuerySet对象,可以通过点query查看获取sql语句,QuerySet对象支持索引取值,但是不推荐,推荐使用自带的.first()来获取第一条数据

获取单个值
user_query = models.User.objects.filter(id=1)  # queryset对象
user_obj = user_query.first()  # 数据对象
# 当条件不存在的情况下会返回一个空的queryset对象,推荐使用
user_obj = models.User.objects.get(id=1)  # 用get可以直接获取到数据对象本身,但是查询条件不存在的情况下直接报错,所有推荐使用filter

删除数据

models.User.objects.filter(id=1).delete()  # 会将queryset所有的数据对象全部删除

修改数据

方式一:

models.User.objects.filter(id=edit_id).update(name=username,password=password)
#调用queryset封装的方法,该方法是一个批量操作,会将queryset内所有的数据对象全部修改

方式二:

user_obj = models.User.objects.filter(id=edit_id).first()
user_obj.name = username
user_obj.password = password
user_obj.save()
上述edit_id获取方式:

方式一:利用input隐藏一个标签

<input type='hidden' name='edit_id' values='{{user_obj.pk}}'>  #django中pk默认取的是主键字段,User表中id就是主键字段

方式二:GET请求携带

<form action='/edit/?edit_id={{user_obj.pk}}' method='post'></form>

上述修改、删除都是通过queryset对象点的方法完成的,会作用于内部所有的数据对象,类似于批量操作

注意:修改模型层里面的根表相关的所有的数据之后,必须重新执行数据库迁移命令

6.django请求生命周期

1635178-20190606213805586-410523187.jpg

转载于:https://www.cnblogs.com/yanminggang/p/10986980.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html input file name,HTML Input FileUpload name用法及代码示例

name属性用于设置或返回文件上传按钮的name属性的值。名称属性用于在提交到服务器后标识表单数据。用法:返回名称属性&#xff1a;fileuploadObject.name设置名称属性&#xff1a;fileuploadObject.namename属性值&#xff1a;name:指定文件上传按钮的名称。示例1&#xff1a;返…

PS教程第三课:PS界面

ctrl 移动 滚轮 多种命令

坡度土方计算案例_土石方工程造价中的细节解析(案例+计算式)

每个房建工程都避不开土石方工程&#xff0c;许多人知道怎样算量&#xff0c;也知道怎样组价&#xff0c;但是却有很多小细节的注意点被忽略&#xff0c;现将土石方工程从算量到组价的全过程整理&#xff0c;希望对大家深刻理解土石方规则&#xff0c;掌握手算及软件算技巧、组…

能测试快充真假的软件,苹果iOS 12可自行测试真假快充:山寨充电器将被洗牌

苹果2018新品发布会临近&#xff0c;有爆料称本次苹果将带来三款新机并且推出最新的系统版本iOS 12。近期&#xff0c;苹果也接连推送了多个iOS 12 Beta版本供大家尝鲜&#xff0c;截止目前&#xff0c;已经更新到了iOS12 Beta9。(iOS12 Beta9升级教程)在更新iOS 12 Beta9之后&…

安卓真机如何连接本地服务器_一分钟搭建可供手机访问的本地服务器 (安卓,ios手机通用)...

我们在做安卓或者ios开发时&#xff0c;开发阶段会用手机访问本地服务器&#xff0c;而本地服务器开发阶段也是部署在后台开发的电脑上。mac或者window电脑的本地服务器。下面就来实现手机访问mac或者window本地服务器。实现步骤如下1&#xff0c;手机和电脑必须连在同一个wifi…

PS教程第五课:套索工具进行抠图

直接点击套索工具 新建图层 选中选区

.net宿舍管理系统 mysql_基于.NET CORE的精美后台管理系统-RuoYi C#版

若依(RuoYi)是码云上一款精美的开源快速开发平台&#xff0c;作者毫无保留给个人及企业免费使用。RuoYi目前有三个版本&#xff1a;普通版本(RuoYi)、前后端分离版本(RuoYi-Vue)、微服务版本(RuoYi-Cloud)。.net的小伙伴们估计很羡慕JAVA的生态&#xff0c;现在.net core发展也…

计算机蓝屏 代码0000a,win7 64位系统蓝屏代码0x0000000a的原因及解决方法

广大win7系统用户都有过由于操作失误或是遭到病毒侵袭导致的电脑蓝屏情况&#xff0c;蓝屏是微软的 Windows 系列操作系统在无法从一个系统错误中恢复过来时&#xff0c;为保护电脑数据文件不被破坏而强制显示的屏幕图像。蓝屏对我们正常使用电脑造成的影响很大&#xff0c;有用…

PS教程第六课:魔棒工具进行抠图

点击魔棒工具进行抠图 选中选区 点击查看

scratch少儿编程第一季——07、人要衣装佛靠金装——外观模块

各位小伙伴大家好&#xff1a; 上期我们学习了如何设置背景&#xff0c;和设计一个小项目总结了动作模块。 本期开始我们学习外观模块下的指令。 首先我们来看看前面两个指令 第一个指令是在角色对象上出现一个对话框&#xff0c;显示角色所说的话。 后面有一个时间参数&#x…

计算机windows无响应,Windows电脑便笺没反应不能用了怎么办?

原标题&#xff1a;Windows电脑便笺没反应不能用了怎么办&#xff1f;Windows系统是很多人工作和生活中常用的电脑系统。Windows电脑具备自带的便签工具&#xff0c;就是便笺。它可以通过桌面便利贴的形式存放在电脑桌面上&#xff0c;查看和编辑待办记事内容。然而有时候Windo…

PS教程第七课:如何查看图层

ctrlj保存选区 点击图层第一个 然后打开复制的图层 变成小眼睛

暴走大侠找不到服务器了,《暴走大侠》常见问题汇总(图文)

《暴走大侠》常见问题汇总暴走大侠常见问题汇总1&#xff0c;翡翠叶最划算最节省的用法就是换门派贡献&#xff0c;然后拿贡献换突破石头&#xff0c;换万寿丹。2&#xff0c;门派从桃花岛开始一个一个进&#xff0c;先攒够足够的贡献再换门派&#xff0c;不要着急去后面的门派…

fckeditor配置

原文地址http://hi.baidu.com/huqiwen/blog/item/7d36b15113fddd1e377abe7d.html 由于FckEditor for java 2.4相对于2.3而言做了许多改变&#xff0c;这些改变使得我们的Fckeditor配置起来更方便。例如&#xff1a; 基础包名从&#xff1a;com.fredck.FCKeditor 改为 net.fcked…

css中怎么消除a的下划线,如何使用css去掉a标签的下划线?(代码详解)

写html超链接的时候&#xff0c;超链接总是自带下划线&#xff0c;如果不需要下划线&#xff0c;我们需要将其去掉&#xff0c;下面我们就来说一下怎么去掉下划线。我们在使用超链接的时候&#xff0c;下划线总是伴随着出现&#xff0c;从视觉上来说有着下划线的a标签总是感觉很…

淘宝CSV每个字段的数据容量原来有限制的

淘宝CSV每个字段的数据容量原来是有限制的。不可大于25000个字符。 这一点我也是在淘宝助理中编辑商品时才发现的问题。 然而很多店铺的商品描述长度都大于这个数值。wyh? 这是因为他们做了某些淘宝的的商品推广服务。 可能这些超过字符数的商品下载到淘宝助中时&#xff0c;其…