Django框架简单搭建增删改查页面 Django请求生命周期流程图

2023-04-25 15:27:10 来源: 博客园
目录Django框架简单搭建增删改查页面一、前期的配置文件以及连接MySQL的基本准备二、在数据库中准备好数据三、将MySQL的数据展示到页面(简单认识HTML模板语法 for循环)在Django项目views.py文件中利用ORM模型语法查找所有的数据
def user_list(request):    # 1.获取user表中所有的数据展示到html页面上    user_data = models.UserInfo.objects.filter()  # 括号内不填筛选条件等价于查所有    # QuerySet[对象1,对象2]   列表套对象    # 2.利用模版语法传递数据到html页面并完成处理最终返回给浏览器展示    return render(request,"user_list.html",{"user_data":user_data})
四、创建用户数据展示HTML页面
        Title    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>{#    #}{#    <script src="bootstrap-3.4.1-dist/js/bootstrap.js"></script>#}    {% load static %}        <script src="{% static "bootstrap-3.4.1-dist/js/bootstrap.min.js" %}"></script>    

数据展示页

{% for user_obj in user_data %} # 接收Django提供的模板语法传过来的字典数据 {% endfor %}
ID Name Password Age Operation
{{ user_obj.id }} {{ user_obj.name }} {{ user_obj.password }} {{ user_obj.age }} 编辑 删除
登录用户 注册用户
五、在urls.py路由层中加入视图函数的路径,后面都是如此六、在浏览器地址栏输入http://127.0.0.1:8010/user_list查看数据展示页面增----注册功能首先在views.py中写好一个简单的注册视图函数,记得写好后去路由层写一下功能路径
def user_register(request):    #2.根据不同的请求方式做不同的处理    if request.method == "POST":        # 3.获取用户相关数据        username_data = request.POST.get("name") # name age password是前端表单中name属性定义的        age_data = request.POST.get("age")        # 这里的数据是前端页面用户数据的数据        password_data = request.POST.get("password")        # 继续一些小的判断        if len(username_data) == 0 or len(password_data) == 0:            return HttpResponse("用户名或年龄不能为空")        user_data = models.UserInfo.objects.filter(name=username_data)   # 用户输入的username拿去和数据库中已经存在的用户比较        if user_data:            return HttpResponse("用户名已经存在")             # 不存在将用模型语法创建一个新用户数据        models.UserInfo.objects.create(name=username_data,age=age_data,password=password_data)        # 重定向到数据展示页        return redirect("/user_list/")    # 1.先返回一个获取注册新用户数据的html页面    return render(request, "register.html")
然后写一个注册用户的HTML页面,注意修改表单的请求方式
        Title    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>{#    #}{#    <script src="bootstrap-3.4.1-dist/js/bootstrap.js"></script>#}     {% load static %}        <script src="{% static "bootstrap-3.4.1-dist/js/bootstrap.min.js" %}"></script>    

注册用户

用户名:

年龄:

密码:


(资料图)

然后去浏览器地址栏输入http://127.0.0.1:8010/register,就可以得到以下页面,当然在数据展示页面点击注册也可以跳到当页面在输入框输入新用户,则会看到新用户增加

ps:注意这里的a是get请求

查----登录功能首先在views.py中写好一个简单的登录视图函数,记得写好后去路由层写一下路径
def user_login(request):    # 2.根据不同的请求方式做不同的处理    if request.method == "POST":        # 3.获取用户相关数据        username_data = request.POST.get("name")   # 这里传的是input中name的值        age_data = request.POST.get("age")        password_data = request.POST.get("password")        # 继续一些小的判断        if len(username_data) == 0 or len(password_data) == 0:            return HttpResponse("用户名或年龄不能为空")        user_data = models.UserInfo.objects.filter(name=username_data,password=password_data)    # 这里是拿出数据库的值(等号前面)和浏览器的值比较        if user_data:            return HttpResponse("登录成功")        return HttpResponse("该用户不存在")        # models.UserInfo.objects.create(name=username_data, age=age_data, password=password_data)        # 重定向到数据展示页        # return redirect("/user_list/")    # 1.先返回一个获取注册新用户数据的html页面    return render(request, "login.html")
然后写一个登录用户的HTML页面,注意修改表单的请求方式
        Title    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>{#    #}{#    <script src="bootstrap-3.4.1-dist/js/bootstrap.js"></script>#}    {% load static %}        <script src="{% static "bootstrap-3.4.1-dist/js/bootstrap.min.js" %}"></script>    

登录用户

用户名:

密码:

然后去浏览器地址栏输入http://127.0.0.1:8010/login,就可以得到以下页面,当然在数据展示页面点击登录也可以跳到当页面

在输入框输入存在的用户名和密码,则会看到页面会返回到HttpResponse结果

改----编辑功能 (稍微复杂一丢丢)首先在views.py中写好一个简单的编辑视图函数,记得写好后去路由层写一下功能路径
def user_edit_func(request):    # 1.获取用户想要编辑的数据主键值    target_edit_id = request.GET.get("edit_id")    # 4.根据不同的请求处理不同的逻辑    if request.method == "POST":        name_data = request.POST.get("name")        age_data = request.POST.get("age")        if len(name_data) == 0 or len(age_data) == 0:            return HttpResponse("用户名或年龄不能为空")        models.User.objects.filter(pk=target_edit_id).update(name=name_data, age=age_data)        # 5.重定向到数据展示页        return redirect("/user_list/")    # 2.根据主键值获取对应的数据    target_edit_obj = models.User.objects.filter(pk=target_edit_id)[0]  # QuerySet [对象1,对象2,...]    # 3.返回一个编辑数据的页面 并且该页面上需要提前展示出原来的数据    return render(request, "userEditPage.html", {"target_edit_obj": target_edit_obj})
然后写一个编辑用户的HTML页面,注意修改表单的请求方式
        Title    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>    {% load static %}        <script src="{% static "bootstrap-3.4.1-dist/js/bootstrap.min.js" %}"></script>        

数据编辑页

name:

age:

ps:这里需要注意的两个点,也是我第一次写的时候,由于逻辑没有理清,少写了edit_id参数在user_list.html文件中需要用get请求传的参数,所以出现了IndexError: list index out of range错误

解决方法这里注意传点击的id参数在浏览器地址栏搜索编辑页面的时候,不能直接http://127.0.0.1:8010/user_edit/因为没有id,拿不到一个对象,所以列表为空,索引超出了范围只需要在地址栏输入http://127.0.0.1:8010/user_edit/?edit_id=2即可,展示页面如下删----删除功能 (复习前端js的冒泡事件)首先在views.py中写好一个简单的编辑视图函数,记得写好后去路由层写一下功能路径
def user_delete(request):    target_delete_id = request.GET.get("delete_id")    models.UserInfo.objects.filter(pk=target_delete_id).delete()    return redirect("user_list")
然后去user_list.html页面修改一下删除按钮a便签的href属性,注意修改表单的请求方式,给该便签绑定一个点击事件
 编辑 删除

ps: 二次确认冒泡事件

<script>        $(".delBtn").click(function () {          let res = confirm("你确定要删除嘛?")          if (res){                                {# 如果点击确定 则执行事件冒泡 #}          }else{              return false   {# 如果点击取消 则阻止事件冒泡 #}          }        })    </script>
Django请求生命周期流程图1.Django请求的生命周期的含义Django请求生命周期是指:当用户在浏览器上输入URL到用户看到网页的这个时间段内,Django后台所发生的事情。2.Django请求的生命周期图解及流程
浏览器发送请求(HTTP协议) web服务网关接口1.请求来的时候解析封装响应走的时候打包处理 2.django默认的wsgiref模块不能承受高并发 最大只有1000左右上线之后会替换成uwsgi来增加并发量3.WSGI跟wsgiref和uwsgi是什么关系WSGI是协议wsgiref和uwsgi是实现该协议的功能模块 django后端1.django中间件类似于django的保安 门户2.urls.py  路由层识别路由匹配对应的视图函数3.views.py视图层网站整体的业务逻辑4.templates文件夹模版层网站所有的html文件5.models.py   模型层ORM

标签:

Django框架简单搭建增删改查页面 Django请求生命周期流程图

目录Django框架简单搭建增删改查页面一、前期的配置文件以及连接MySQL的基本准备二、在数据库中准备好数据

04-25 15:27:10

冠心病患者饮食指导_冠心病人饮食-环球要闻

1、冠心病人要注意合理饮食,要控制高胆固醇、高脂肪食物,多吃素食。2、同时要控制总热量的摄入。3、生活

04-25 15:20:17

卓创资讯:多重利空施压 国产大豆后期行情或偏弱

【卓创资讯:多重利空施压国产大豆后期行情或偏弱】4月中下旬,东北地区大豆价格重拾跌势,大商所一号黄大

04-25 14:56:27

新款Drop紧凑型扬声器以不到130美元的价格让您的办公桌充满声音-世界快看点

在线零售商Drop销售从现成技术到定制时尚配饰的各种商品,但它最出名的产品可能有两类:机械键盘和音频设备

04-25 13:59:36

【世界热闻】酸菜鱼品牌观察:鱼你的青春酸菜鱼有哪些优势?

随着疫情放开,各行各业都展示出重焕生机的趋势,尤其是受疫情影响较大的餐饮行业,以往三年里,餐饮行业等

04-25 14:10:21

福建莆田:“嫁接”技术赋能产业

制造业是莆田经济的支柱,占全市GDP比重超四成。去年,莆田上榜2022先进制造业百强市。为给产业增加“竞争

04-25 10:35:44

俄国防部:乌方袭击危及协议再次延期 观焦点

当地时间24日夜间,俄罗斯国防部发布公告称,今年3月23日和4月24日,乌克兰方面违反“不利用人道主义走廊和

04-25 10:27:40

“五一”假期 武汉公交有这些变化

“五一”假期武汉公交有这些变化

04-25 10:22:42

观众在“进化”,影视剧主创跟上了吗 环球消息

《欢乐颂4》评分走低几乎是毫无意外的,该剧唯一能激起讨论的话题是:口碑收视持续下跌,为什么还要拍、还

04-25 10:07:56

每日精选:霍格沃茨真的存在吗 霍格沃茨出自哪本书你知道吗

1、霍格沃茨不是真的存在的。霍格沃茨是小说《哈利波特》里的魔法学校,学校位于英国苏格兰的霍格沃茨城堡

04-25 09:54:06

每日消息!依托百度巨大流量 百度健康:“大树之下”好乘凉?

山东商报·速豹新闻网记者冯云云张月2020年百度成立了百度健康,正式进军互联网医疗领域近年来,大众医...

04-25 09:48:43

四川:一季度外商直接投资实现大幅增长

央广网成都4月25日消息(记者昌思荣)据商务部统计,2023年1—3月,四川省外商直接投资(FDI)到资10 54亿

04-25 09:45:08

宁晋:项目观摩亮进度 比学赶超拼实绩

本报讯(记者闫丽静)4月23日,宁晋县组织开展项目建设观摩活动,现场看开工、看投资、比进度、比服务、解

04-25 09:33:25

焦点快报!4月24日基金净值:信诚优胜精选混合A最新净值1.9338,跌1.43%

4月24日,信诚优胜精选混合A最新单位净值为1 9338元,累计净值为3 1128元,较前一交易日下跌1 43%。历史数

04-25 09:33:16

世界视讯!“红树林之城”湛江亮相成都绵阳受欢迎

4月24日,记者从市文广旅体局了解到,省文化和旅游厅近期组织赴四川省成都市、绵阳市举办“活力广东·时...

04-25 09:33:12

索引符号怎么画 索引符号

今天来聊聊关于索引符号怎么画,索引符号的文章,现在就为大家来简单介绍下索引符号怎么画,索引符号,希望

04-25 09:26:05

环球精选!制度优势加速上海汽车产业走出去

各类企业总产值达近2000亿元人民币,我国去年出口的新能源汽车约一半从这里走出,进出口总额超百亿美元...

04-25 09:00:16

法国路威酩轩集团成为首个市值超5000亿美元的欧洲上市公司

中新社巴黎4月24日电(记者李洋)当地时间4月24日,法国奢侈品巨头路威酩轩集团(LVMH)成为首个市值超过5000亿

04-25 08:54:15

今日关注:外汇交易提醒:欧银下周或加息50个基点,美元跌创逾一周新低,日元在日银决议前下跌

外汇交易提醒:欧银下周或加息50个基点,美元跌创逾一周新低,日元在日银决议前下跌

04-25 08:54:50

福登:战阿森纳是一场必须赢的比赛,希望哈兰德能破进球纪录

在接受BeanymanSports的采访时,曼城中场福登表示,对阵阿森纳是一场必须赢的比赛。本周中曼城将在主场对阵

04-25 08:45:55

Netflix将大幅提高对韩剧、韩影等内容投资,未来四年达到25亿美元_当前消息

Netflix将大幅提高对韩剧、韩影等内容投资,未来四年达到25亿美元;当地时间4月24日,韩国总统尹锡悦在访美

04-25 08:27:10

【新要闻】“软卧车厢3男1女”提示票务服务优化升级

杨玉龙根据澎湃新闻等多家媒体报道,日前,一名女子发帖吐槽软卧车厢分配3男1女,呼吁铁路部门是否可以修改

04-25 07:57:24

4月24日基金净值:景顺长城内需增长混合最新净值9.724,跌1.64%

4月24日,景顺长城内需增长混合最新单位净值为9 724元,累计净值为11 6元,较前一交易日下跌1 64%。历史数

04-25 07:51:28

数字阅读为文化消费提供新选择-世界新视野

4月24日,在第二届全民阅读大会上,数字阅读分论坛暨第九届数字阅读年会举行。会上,中国音像与数字出版协

04-25 07:25:26

原神 Sushi - Jesse的插画 初五【12P】

所有图片均转载于网络,如有侵权请联系我,我会立即删除1 2 3 4 5 6 7 8 9 10 11 12

04-25 07:12:19

世界快资讯丨爱的故事上集原唱版本_爱的故事上集原唱

1、就是孙耀威原唱的啊,我100%确定 不过常有人翻唱,大概是楼主记错了吧。本文到此分享完毕,希望对大家有所

04-25 06:37:35

电信移动联通号段_188号段是移动还是联通

1、不能买。2、188开头的是移动3g号码段不能用三星i9300你可以买三星i9308。3、支持移动3g卡希望我的回答对

04-25 06:40:34

现代传媒学院_关于现代传媒学院介绍-环球速递

现代传媒学院,关于现代传媒学院介绍这个很多人还不知道,我们一起来看看!1、现代传媒学院是国内首家以传媒

04-25 06:07:37

【环球时快讯】国家药监局关于修订全身用利巴韦林制剂说明书的公告(2023年第55号)

临床医师、药师应当仔细阅读上述药品说明书的修订内容,在选择用药时,应当根据新修订说明书进行充分的获益

04-25 05:59:13

生喝大蒜水怎么做法_大蒜水治咳嗽的做法 每日速看

1、大蒜水会不会很辣?不过我知道很多其他的办法可以治咳嗽,楼主要不试试?如果嫌麻烦的话也可以尝试直接

04-25 05:26:26

红米新手机第一次充电多长时间(有这方面的说明吗)|天天要闻

红米新手机第一次充电多长时间,有这方面的说明吗很多人还不知道,现在让我们一起来看看吧!解答:1、红米

04-25 05:00:41

全球热讯:护士精神病院工作7年患重度抑郁 满满干货

第一天被隔离在一个房间,病床左边一个裸体女人,我看着冷把自己的被子给她盖上了;右边一个不说话的女人头

04-25 04:35:14

还能如此?李想:想要获得更好碰撞成绩只需暂时下调零部件价格

还能如此?李想:想要获得更好碰撞成绩只需暂时下调零部件价格

04-25 04:21:31

全球热议:新时达:公司变频驱动产品主要应用于智慧水务、暖通空调、物流起重、轮胎橡胶等行业

新时达4月24日在互动平台回答投资者提问时表示,公司变频驱动业务主要产品包括高低压通用、专用变频器,主

04-25 03:44:23

C视频 | 这个咖啡机器人,会拉花!手法还是大师级! 世界滚动

4月24日,绵阳科技城新区(以下简称新区)创新基地创客咖啡馆内,基于独立自主研发的机器人inBot系统和运动

04-25 03:15:27

广交会天津交易团:二期展会洽谈热烈 国际知名品牌商品比例超50%

在玻璃工艺品展区,天津参展企业结合企业的形象和玻璃展品的特点,展位设计得晶莹剔透,明快简洁、高贵典雅

04-25 03:00:32

花开堪折直须折莫待无花空折枝_花开堪折直须折

1、【zhé】《金缕衣》无名氏劝君莫惜金缕衣,劝君惜取少年时。2、花开堪折直须折,莫待无花空折枝。

04-25 01:56:49

全球要闻:福耀集团:“曹德旺炮轰特斯拉涨薪”等内容完全是凭空捏造

IT之家4月24日消息,福耀集团今天发布声明称,网络上出现“曹德旺炮轰特斯拉涨薪”“宁愿捐款也不涨薪”...

04-25 01:44:20

世界新资讯:安徽凤凰股东户数下降3.77%,户均持股2.64万元

安徽凤凰最新股东户数6074户,呈现连续4期下降,低于行业平均水平。公司户均持有流通股份5390股;户均流通

04-25 01:33:54

全球聚焦:黑土之声|优环境强服务当久久为功

广东行,考察团看到了南粤大地处处赛龙夺锦、人人奋楫争先的景象。企业拼速度、拼质量,政府拼服务、拼效率

04-25 01:00:05

门头沟税务开展“税务体验官”请进来活动 全球今亮点

门头沟税务开展“税务体验官”请进来活动

04-25 00:53:10

文山州举行职业技能大赛

4月20日,2023年文山州职业技能大赛暨云南省职业技能大赛文山州选拔赛在州高级技工学校举行。此次竞赛共设

04-25 00:19:57

订单签在春天里

订单签在春天里

04-25 00:22:33

夯实安全生产根基 增强风险防控能力_世界观速讯

自《江苏省安全生产条例》经江苏省人大常务委员会修订通过并公布以来,江苏省盐城市大丰区大中街道超前一拍

04-24 23:33:22

当“恋综”遇见50+,当儿女给父母写“相亲简历”,这档新节目的视角好温情-天天快报

都说“催婚”是当代年轻人最害怕的事,但如果是“反向操作”,由孩子给爸妈相亲呢?别说,最近就有一档...

04-24 23:36:34

三都税务局图书室24小时免费开放 让阅读不打烊

三都税务局图书室24小时免费开放让阅读不打烊

04-24 22:57:22

心动之旅·身动之趣!五一黄金周方家坪景区盛大开园

心动之旅·身动之趣!五一黄金周方家坪景区盛大开园

04-24 22:45:43

视点!2023五一福州三坊七巷景区有哪些活动(更新中)

2023五一福州三坊七巷景区活动汇总图源:摄图网-5012891211、数字生活体验周时间:4月24日—30日地点:三坊

04-24 22:18:09

2023首届杭州市月季花展郭庄要门票吗-环球观焦点

2023首届杭州市月季花展郭庄要门票吗需要,门票每人10元。预约入口:点击查看预订须知一、相关免票政策1、7

04-24 21:58:02

今日聚焦!新华视点|旅居美国的大熊猫“丫丫”将回国,身体状况如何?

新华视点|旅居美国的大熊猫“丫丫”将回国,身体状况如何?,丫丫,大熊猫,汉娜,克罗斯,劳伦,动物园

04-24 21:37:28

冠心病患者饮食指导_冠心病人饮食-环球要闻
卓创资讯:多重利空施压 国产大豆后期行情或偏弱
新款Drop紧凑型扬声器以不到130美元的价格让您的办公桌充满声音-世界快看点
【世界热闻】酸菜鱼品牌观察:鱼你的青春酸菜鱼有哪些优势?
福建莆田:“嫁接”技术赋能产业
俄国防部:乌方袭击危及协议再次延期 观焦点
“五一”假期 武汉公交有这些变化
观众在“进化”,影视剧主创跟上了吗 环球消息
每日精选:霍格沃茨真的存在吗 霍格沃茨出自哪本书你知道吗
每日消息!依托百度巨大流量 百度健康:“大树之下”好乘凉?
四川:一季度外商直接投资实现大幅增长
宁晋:项目观摩亮进度 比学赶超拼实绩
焦点快报!4月24日基金净值:信诚优胜精选混合A最新净值1.9338,跌1.43%
世界视讯!“红树林之城”湛江亮相成都绵阳受欢迎
索引符号怎么画 索引符号
环球精选!制度优势加速上海汽车产业走出去
法国路威酩轩集团成为首个市值超5000亿美元的欧洲上市公司
今日关注:外汇交易提醒:欧银下周或加息50个基点,美元跌创逾一周新低,日元在日银决议前下跌
福登:战阿森纳是一场必须赢的比赛,希望哈兰德能破进球纪录
Netflix将大幅提高对韩剧、韩影等内容投资,未来四年达到25亿美元_当前消息
【新要闻】“软卧车厢3男1女”提示票务服务优化升级
4月24日基金净值:景顺长城内需增长混合最新净值9.724,跌1.64%
数字阅读为文化消费提供新选择-世界新视野
原神 Sushi - Jesse的插画 初五【12P】
世界快资讯丨爱的故事上集原唱版本_爱的故事上集原唱
电信移动联通号段_188号段是移动还是联通
现代传媒学院_关于现代传媒学院介绍-环球速递
【环球时快讯】国家药监局关于修订全身用利巴韦林制剂说明书的公告(2023年第55号)
生喝大蒜水怎么做法_大蒜水治咳嗽的做法 每日速看
红米新手机第一次充电多长时间(有这方面的说明吗)|天天要闻
全球热讯:护士精神病院工作7年患重度抑郁 满满干货
还能如此?李想:想要获得更好碰撞成绩只需暂时下调零部件价格
全球热议:新时达:公司变频驱动产品主要应用于智慧水务、暖通空调、物流起重、轮胎橡胶等行业
C视频 | 这个咖啡机器人,会拉花!手法还是大师级! 世界滚动
广交会天津交易团:二期展会洽谈热烈 国际知名品牌商品比例超50%
花开堪折直须折莫待无花空折枝_花开堪折直须折
全球要闻:福耀集团:“曹德旺炮轰特斯拉涨薪”等内容完全是凭空捏造
世界新资讯:安徽凤凰股东户数下降3.77%,户均持股2.64万元
全球聚焦:黑土之声|优环境强服务当久久为功
门头沟税务开展“税务体验官”请进来活动 全球今亮点
文山州举行职业技能大赛
订单签在春天里
夯实安全生产根基 增强风险防控能力_世界观速讯
当“恋综”遇见50+,当儿女给父母写“相亲简历”,这档新节目的视角好温情-天天快报
三都税务局图书室24小时免费开放 让阅读不打烊
心动之旅·身动之趣!五一黄金周方家坪景区盛大开园
视点!2023五一福州三坊七巷景区有哪些活动(更新中)
2023首届杭州市月季花展郭庄要门票吗-环球观焦点
今日聚焦!新华视点|旅居美国的大熊猫“丫丫”将回国,身体状况如何?
全智贤和老公罕见亮相!一起看儿子游泳比赛太低调,大家都不敢认-世界时快讯
X 广告
行业动态
X 广告

Copyright ©  2015-2022 大众植物网版权所有  备案号:豫ICP备20014643号-14   联系邮箱: 905 14 41 07@qq.com