七、Django学习之预备知识
其他关于Python Web开发笔记:(如果遇到问题可以一起交流~)
一、Flask学习之HTML-CSDN博客
二、Flask学习之CSS-CSDN博客
【接上篇】二、Flask学习之CSS(下篇)-CSDN博客
三、Flask学习之BootSrap-CSDN博客
四、Flask学习之JavaScript-CSDN博客
五、Flask学习之MySQL-CSDN博客
六、Django学习之小试牛刀-CSDN博客
1.模板语言
1.1. 准备工作
首先在urls.py添加学习模板语言的url:
path("tpl/", views.tpl)
然后在views.py里面添加对应的视图函数:
from django.shortcuts import render def tpl(request): return render(request, "tpl.html")
最后在templates文件夹下创建对用的HTML文件tpl.html。
1.2. 显示变量
变量的形式如下:{{ variable }}。当模板引擎遇到一个变量时,它会评估该变量并将其替换为结果。变量名称由字母数字字符和下划线("_")的任意组合组成,但不能以下划线开头,也不能是数字。
例如将tpl函数改为:
def tpl(request): name = "panda" return render(request, "tpl.html", {"name": name})
然后将HTML文件改为:
Title 模板语言学习
{{ name }}
运行结果:
由此也可以想到能够展示列表:
def tpl(request): name = "panda" my_list = ["apple", "banana", "cherry"] return render(request, "tpl.html", {"name": name, "my_list": my_list})
然后在HTML中加入:
{{ my_list }}
结果:
如果要提取列表中每一个变量不能使用Python中的[],要使用.:
{{ my_list.1 }}
1.3. for循环
{% for each in my_list %}{{ each }}{% endfor %}
效果:
1.4. 条件语句
if语句:
{% if name == "panda" %}{{ name }}{% endif %}
if-else语句:
{% if name == "name" %}{{ name }}{% else %}Hello World!{% endif %}
if-elif-else语句:
{% if name == "name" %}{{ name }}{% elif name == "666" %}666{% else %}Hello World!{% endif %}
2.请求和响应
请求:
# 1.获取请求的方式 print(request.method) # 2.获取GET方式传回的值 print(request.GET) # 3.获取POST方式传回的值 print(request.POST)
响应:
# 1.直接返还字符串 # return HttpResponse("Hello, world!") # 2.返还一个HTML文件,同时可以传参数 # return HttpResponse("something.html",{"something":"something"}) # 3.重定向 return redirect("www.google.com")
3.案例
3.1. 源代码
在urls.py中添加:
path("login/", views.login)
在views.py中添加:
def login(request): if request.method == "GET": return render(request, "login.html") username = request.POST.get("username") passwd = request.POST.get("passwd") if username == "panda" and passwd == "123456": return HttpResponse("登录成功") return render(request, "login.html", {"error_msg": "用户名或密码错误,请重试"})
在templates中添加login.html:
Title 用户登录
3.2. 详细说明
在浏览器搜索框中输入对应的网址属于GET请求方式,所以在访问login页面的时候会直接跳转到login.html文件,然后显示它的内容,但是HTML文件中有一句是{{ error_msg }},需要python文件进行传值error_msg,但是如果没有传值的话,Django默认是空,所以这一句话在这时候不起作用。
当用户输入密码并提交的时候,由于login.html文件设置的表单提交是POST提交方式,所以会触发这个代码段:
username = request.POST.get("username") passwd = request.POST.get("passwd") if username == "panda" and passwd == "123456": return HttpResponse("登录成功") return render(request, "login.html", {"error_msg": "用户名或密码错误,请重试"})
如果用户输入的用户名和密码均正确,就直接执行return HttpResponse("登录成功")
但是如果输入的用户名和密码有一个不正确就会触发这句话return render(request, "login.html", {"error_msg": "用户名或密码错误,请重试"})这时候,login.html文件中的error_msg有值了,就会显示对应的样式:
猜你喜欢
- 15天前(四川率先建立“双定向”基层文化人才职称评审通道机制)四川率先建立“双定向”基层文化人才职称评审通道机制
- 15天前(上海文旅产业发展高峰论坛)《上海打造文旅元宇宙新赛道行动方案》发布
- 15天前(fender japan hybrid)Fender东京旗舰店盛大开幕在即,开售商品和店内服务提前揭晓
- 15天前(三亚太阳湾柏悦度假酒店)三亚太阳湾柏悦酒店携手ROSEONLY诺誓缔造浪漫七夕
- 15天前(花王伴你乐享五一好“趣”处)花王伴你乐享五一好“趣”处
- 15天前(希尔顿集团2021年筹建的酒店)希尔顿集团两大重点项目亮相第四届上海旅游投资促进大会
- 15天前(万豪旅享家活动2021)精彩上新,漫享夏日----跟随万豪旅享家新开酒店解锁夏日旅行灵感
- 15天前(星级饭店的发展困境)星级饭店转型之路:从市场逻辑到行业实践的深度探索
- 15天前(美诺酒店集团旗下臻选品牌m collection)美诺酒店集团启动盛橡品牌战略焕新 开启全球扩张新篇章
- 15天前(世茂海峡大厦多高)巴西地产高管齐聚厦门世茂海峡大厦 共探超高层建筑锻造经验
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章