1 普通正则

2 分组正则

url(r'/blog/(\d+)/(\d+)',views.blog)     blog(request,arq1,arq2) 按照位置传参

3 分组命名

url(r'/blog/(?P<year>\d+)/(?P<month>\d+)',views.blog)     blog(request,year,month)

4  用name 指定别名

url(r'/blog/(?P<year>\d+)/(?P<month>\d+)',views.blog,name ='blog')     blog(request,year,month

涉及到了反向解析URL

4-1 在html里面:{%  url 'blog' 2012 12%}

4-2from django.urls import reverse reverse ('blog',arg=(2013,11))

5 用namespace 指定命名空间
url(r'/app01/',inclue(app01.urls,namespace='app01))
涉及到了反向解析URL
5-1 HTML 里面{% url 'app01:blog' 2012 11%}
5-22 在views reverse('app01:blog' ,arg=(2010,33))

--------------

通过get取值 和通关过分组取值的用法和对比

  url(r'^edit_class_list/(\d+)/', views.edit_class_list, name='editclasslist'),def edit_class_list(request,arg):# 这里是通过分组取值的方法得到arg,点击编辑的时候生成url 和id的值 id的值就是argif request.method == 'POST':e_id = request.POST.get("class_id")e_name1 = request.POST.get('class_name')first1_day = request.POST.get('first_day')models.Ban_list.objects.filter(id=e_id).update(cname=e_name1,first_day=first1_day)return redirect(reverse('app0001urls:classlist'))# 通过编辑的链接取值arge_name = models.Ban_list.objects.get(id=arg)return render(request,'edit_class_list.html',{'e_name1':e_name}){#这里的form 表单里因为url 那里已经分组 必须是两个参数组成的url action 必须是两部分e_name1.id 就是那个\d+#}
<form action="{% url 'app0001urls:editclasslist' e_name1.id %}"  method="post" >{% csrf_token %}
{#    id这里必须要有id的值为什么  因为POST 通过id的name 取值 他的值就是现在的value#}<input type="text" name="class_id" value="{{ e_name1.id }}" style="display: none">班级名称<input type="text" name="class_name" value='{{ e_name1.cname }}'>
{#    时间的类型注意#}开班时间<input type="date" name="first_day" value='{{ e_name1.first_day|date:'Y-m-d'}}'><input type="submit" value="提交"><a href="/app0001/class_list/">取消</a>
</form>get 取值<td><a href="/app0001/edit_student_list/?student_id={{ student.id }}" style="color:blue ; text-decoration: none">编辑</a><a href="/app0001/delete_student_list/?student_id={{ student.id }}" style="color:blue ; text-decoration: none">删除</a></td>

 

1 HTML 里面{% url 'app01:blog' 2012 11%}
2 在views reverse('app01:blog' ,arg=(2010,33))

要在Django Console 打印出有sq语句 在django 项目的配置信息中加上这个日志 而且引用

import loggong
LOGGING = {
'version': 1, # 目前为止有且只有这一个值
'disable_existing_loggers': False, # 不禁用已经存在的logger实例
# 定义一些日志的处理方式
'handlers': {
'console': {
'level':'DEBUG', # handle的日志级别
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True, # 向上传导
'level':'DEBUG', # logger实例的日志级别
},
}
}

models 中插入这句在定义的类的下面的缩进行里 这样打印出来的结果对象就会是实际的内容
  def __str__(self):
    return '{}{}'.format(self.cname,self.first_day)
单表查询的增删改查
单表查询的API 介绍 共13条
1 返回QuerySet对象的有8条
1 all():全部 2 filter():过滤 3 exclude():不包括
4 value()值 5value_list() 值的列表 6 order_by() 排序正序
7 reverse() 反转 8 distinct() 去重

models.Ban_list.objects.filter(id=7)
<QuerySet [<Ban_list: Linux 1212期2015-01-29>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7 LIMIT 21; args=(7,)
(0.000) SELECT VERSION(); args=None
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7 LIMIT 21; args=(7,)

from app0001 import models
models.Ban_list.objects.all(){这里是没有加入上边的返回的内容的}
(0.000) SELECT @@SQL_AUTO_IS_NULL; args=None
<QuerySet [<Ban_list: Ban_list object>, <Ban_list: Ban_list object>, <Ban_list: Ban_list object>, <Ban_list: Ban_list object>, <Ban_list: Ban_list object>, <Ban_list: Ban_list object>, <Ban_list: Ban_list object>]>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()
(0.001) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()models.Ban_list.objects.all(){这里是加入上边的返回的内容的}
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: 大数据1班2020-12-01>, <Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 19期2016-10-19>, <Ban_list: 大数据2班2017-10-28>]>
(0.001) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()

.all()

2返回数字的: 1 count():计数行数
3返回布尔值的:1exists():是否存在
4 返回的是对象的:1 get() 得到的是一个对象 2 first():第一个对象 3 last() :最后一个对象

models.Ban_list.objects.get(id=7)
(0.001) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.001) SELECT VERSION(); args=None
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7; args=(7,)
<Ban_list: Linux 1212期2015-01-29>

转载于:https://www.cnblogs.com/xiaoluoboer/p/8328674.html

关于urls 的基础相关推荐

  1. Django框架的深入浅出(1)

    一.Django介绍 什么是Django框架? 1.开源框架,python语言编写 2.住做新闻和内容管理网站 3.Django提供了强大的后台管理系统 框架的模式:MTV M:Models 模型层 ...

  2. 零基础自学用Python 3开发网络爬虫(一)

    原文出处: Jecvay Notes (@Jecvay) 由于本学期好多神都选了Cisco网络课, 而我这等弱渣没选, 去蹭了一节发现讲的内容虽然我不懂但是还是无爱. 我想既然都本科就出来工作还是按照 ...

  3. 网红快餐店_在一家快餐店工作解释了AJAX基础知识

    网红快餐店 by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) 在一家快餐店工作解释了AJAX基础知识 (AJAX Basics Explained By Work ...

  4. Django项目准备和配置(MVT图解、创建项目和应用、更换解释器、安装应用、本地化、模板路径、项目中匹配urls、应用中匹配urls.py、准备视图、开启服务器、修改DATABAS配置信息)

    Django模型主要包含: 模型配置 数据的增删改 增:book = BookInfo() book.save() 和BookInfo.objects.create() 删:book.delete() ...

  5. Webpack系列-第一篇基础杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...

  6. Gradle学习之基础篇

    一.gradle基础概念 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具.Gradle抛弃了基于各种繁琐的XML,使用一种基于Groovy的特定领域语言( ...

  7. awk截取字符命令_Linux运维基础技能: 脚本编程与Linux命令

    本系列文章一共三篇,分别为<脚本编程与 Linux 命令>.<接入层与网络基础>和< MySQL 与 SQL 优化>,由腾讯高级工程师 luaruan(阮永顺) 原 ...

  8. 系统架构师-基础到企业应用架构-表现层

    一.前言 最近也许是由于假期的原因,我发布的文章的速度变慢了,对大家说下抱歉,这个系列的确我很难写,感谢大家对我的支持和关注,的确我在发布后得到大家的支 持和认可,让我有了更多的动力,之前发布的有些内 ...

  9. python 基础知识点整理 和详细应用

    Python教程 Python是一种简单易学,功能强大的编程语言.它包含了高效的高级数据结构和简单而有效的方法,面向对象编程.Python优雅的语法,动态类型,以及它天然的解释能力,使其成为理想的语言 ...

最新文章

  1. [TJOI2013]最长上升子序列
  2. 修改时间服务器失败,电脑系统同步时间失败怎么办 修改时间服务器的方法。...
  3. Luogu1053 NOIP2005篝火晚会
  4. 累了,开心一下。传说中的脑壳进水
  5. Android多线程分析之三:Handler,Looper的实现
  6. 拿下“[warn] (OS 64)指定的网络名不再可用”错误
  7. Django从理论到实战(part50)--使用模型来处理上传的文件
  8. vue实战学习第二天
  9. python构建简单神经网络_Python构建一个简单的神经网络,Pytorch,搭建
  10. Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)
  11. SQL Server - 聚集索引 第六篇
  12. Mysql:日志管理:错误日志
  13. JavaScript数组中新增元素(2)
  14. Jmeter 面试题
  15. 优雅代码之巧用 Ramda
  16. 阿里云香港服务器速度快吗?
  17. 字节面试算法题:用集合中的数凑小于target的最大数(Java实现,各类用例均通过)
  18. 成人学士学位英语单词(史上最全)
  19. Pycharm新建文件时,如何设置自动添加作者时间等信息
  20. 如何把word里的分页符、换行符替换成回车符?

热门文章

  1. 【Vue】模仿b站网站-----使用vue实现
  2. Yeslab华为安全HCIE七门之--防火墙高级技术(17篇)
  3. Node.js 的安装与配置教程
  4. 简单两步更换idea背景图片--超级简单
  5. 民用/家用 固态硬盘选择及购买
  6. 【入侵检测】5.27quiz
  7. 如何解决mac下使用brew下载软件卡住
  8. 90后高中生学编程月薪过万,刺痛了谁?
  9. scikit中StratifiedKFold和KFold区别,以及split方法
  10. Python模拟电影院自动售票机