django 视图与网址
我是一个新手,内容粗糙,望大家多多指点。在这里我只是总结自身所学。
视图与网址
操作文件:urls.py、views.py
urls.py
作用:用于处理前台的链接(如前台访问:127.0.0.1:8080/index/1212/21212),其实永远访问的是同一个文件,至于结果则是通过urls处理,调用不同views中的不同函数,当然这些函数可以在urls中指定。
主要格式:
1.7:url(r'^add/$', 'calc.views.add', name='add'),
1.8:url(r'^add/$', views.add, name='add'),
2.0: path('add/', views.add, name='add'),
注意:1.8和2.0需要将views导入到urls中,如 from app import views
额外:可以在app中新建urls,通过include函数(2.0:from django.urls import include)使其有效(path('app/', include('app.urls')),)
值得一提的是,每个路由都有一个name(如上:name="add")可写可不写,这里虽不是必须但也极其重要,他是前台链接的别名,即模板中可以使用这个name的值作为路由,需要和{% url %}一起使用。这样写的好处是,代码可维护性很高。
views.py
上面提到需要在urls中引入views模块,如:views.add,其实是在调用views中的add方法,这个方法很特殊,必须至少一个参数,而第一个参数作为数据请求的句柄,也就是request,在里面可以获取前端发来的请求,而且必须返回一个HttpResponse对象。
作用:用于处理请求、数据库交互、模板调用等(内容很多)。
调用模板(templates): 在views 的函数中最后加上return render(request, 'home.html'),home.html即为模板名称,相应的在tempalates中必须有home.html文件,并且需要设置settings.py中的TEMPLATES变量,设置DIRS:'DIRS': [os.path.join(BASE_DIR,'Templates')],
数据库模块:还没学,据说需要调用一个数据库框架,到时候再看看。
Templates模块
组成: 循环,条件判断,标签,过滤器等。
循环:用法跟python一样,唯一区别在于需要{% for i in TutorialList %},结束需要 {% endfor %},不需要考虑缩紧问题
循环中系统提供的变量:
| forloop.counter | 索引从 1 开始算 |
| forloop.counter0 | 索引从 0 开始算 |
| forloop.revcounter | 索引从最大长度到 1 |
| forloop.revcounter0 | 索引从最大长度到 0 |
| forloop.first | 当遍历的元素为第一项时为真 |
| forloop.last | 当遍历的元素为最后一项时为真 |
| forloop.parentloop |
用在嵌套的 for 循环中, 获取上一层 for 循环的 forloop |
{% for i in TutorialList %}
{{ i }}
{% endfor %}
django 视图与网址的更多相关文章
- 1.2、Django 视图与网址__进阶
Django 视图与网址进阶 1.1.简单使用: 把我们新定义的app加到settings.py中的INSTALL_APPS中 修改 HelloDjango/HelloDjango/settings. ...
- Django 视图与网址进阶
一 .在网页上做加减法 1. 采用 /add/?a=4&b=5 这样GET方法进行 1 2 3 django-admin.py startproject zqxt_views cd zqxt_ ...
- Django视图与网址
Django中网址是写在 urls.py 文件中,用正则表达式对应 views.py 中的一个函数(或者generic类),我们用一个项目来演示. 下载本节所有源代码: 学习编程最好的办法就是动手敲代 ...
- 【Django视图与网址进阶004】
一.在网页上做加减法 1. 采用 /add/?a=4&b=5 这样GET方法进行 django-admin.py startproject zqxt_views cd zqxt_views p ...
- 【Mac系统 + Python + Django】之开发一个发布会系统【Django视图(二)】
此学习资料是通过虫师的python接口自动化出的书学习而来的,在此说明一下,想学习更多的自动化的同学可以找虫师的博客园,非广告,因为我python+selenium自动化也是跟虫师学的,学习效果很好的 ...
- [diango]理解django视图工作原理
前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之 ...
- Django 2.0 学习(03):Django视图和URL(下)
接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import Ht ...
- 如何在django视图中使用asyncio(协程)和ThreadPoolExecutor(多线程)
Django视图函数执行,不在主线程中,直接 loop = asyncio.new_event_loop() # 更不能loop = asyncio.get_event_loop() 会触发 Runt ...
- Django 视图系统
Django 视图系统 概念 一个视图函数,简称视图,是一个简单的Python函数,用于接受Web请求并返回Web响应. 通常将视图函数写在project或app目录中的名为views.py文件中 简 ...
随机推荐
- 玩爆你的手机联系人--T9搜索(一)
自己研究了好几天联系人的T9搜索算法, 先分享出来给大家看看. 欢迎不吝赐教.假设有大神有更好的T9搜索算法, 那更好啊,大家一起研究研究,谢谢. 第一部分是比較简单的获取手机联系人. 获取 ...
- JS的video在手机上有些手机能播放,而有些不能原因
一,一开始我video是这样写的,直接给地址,然后有很多手机却不能播放,或者说卡在一开始的页面,是什么原因呢? <video id='video' > <source src='xx ...
- bzoj3097 Hash Killer I
Hash Killer I Time Limit: 5 Sec Memory Limit: 128 MBSec Special Judge Description 这天天气不错,hzhwcmhf神犇给 ...
- JS的连等赋值
参考自,我再整理一遍. 题目如下: var a = {n:1}; var b = a; a.x = a = {n:2}; alert(a.x); alert(b.x): 输出为 undefined, ...
- SCM
scm即软件配置管理. 软件配置管理(SCM)是指通过执行版本控制.变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性,配置管理是对工作成果的一种有效保护. SCM(Sof ...
- ltp-ddt realtime_cpuload_10p 涉及的cpuloadgen交叉编译及安装
1.下载源码 https://github.com/ptitiano/cpuloadgen/archive/v0.94.tar.gz 解压 tar -zxvf cpuloadgen-0.94.tar. ...
- elasticsearch failed to load elasticsearch nodes
转载:https://blog.csdn.net/weixin_44714808/article/details/90049315 elasticsearch 安装在linux时使用springboo ...
- pycharm 中切换terminal的盘符
第一步,采用 cd .. 将当前路径设置为该盘符的根目录 第二步,采用 C: 将盘符设置为C盘然后使用 cd 命令将路径切换到指定位置
- ARC096E Everything on It 容斥原理
题目传送门 https://atcoder.jp/contests/arc096/tasks/arc096_c 题解 考虑容斥,问题转化为求至少有 \(i\) 个数出现不高于 \(1\) 次. 那么我 ...
- Java double转long方法
Java double转long方法 double random = Math.round(Math.random()*10000); long l = new Double(random).long ...