01-Django-urls
# Django系统
- 环境
- python3.6
- django1.18
- 参考资料
- [django中文教程](http://python.usyiyi.cn/)
# 环境搭建
- anaconda+pycharm
- anaconda使用
- conda list: 显示当前环境安装的包
- conda env list:显示安装的虚拟环境列表
- conda create -n env_name python=3.6
- 激活conda的虚拟环境
- (Linux)source activate env_name
- (win) activate env_name
- pip install django=1.8
# 后台需要的流程
# 创建第一个django程序
- 命令行启动
django-admin startproject tulingxueyuan
cd tulingxueyuan
python manage.py runserver
- pycharm 启动
- 需要配置
# 路由系统-urls
- 创建app
- app:负责一个具体业务或者一类具体业务的模块
- python manage.py sartapp teacher
- 路由
- 按照具体的请求url,导入到相应的业务处理模块的一个功能模块
- django的信息控制中枢
- 本质上是接受的URL和相应的处理模块的一个映射
- 在接受URL请求的匹配上使用了RE
- URL的具体格式入urls.py中所示
- 需要关注两点:
1. 接受的URL是什么,即如何用RE对传入URL进行匹配
2. 已知URL匹配到哪个处理模块
- url匹配规则
- 从上往下一个一个比对
- url格式是分级格式,则按照级别一级一级往下比对,主要对应url包含子url的情况
- 子url一旦被调用,则不会返回到主url
- `/one/two/three/`
- 正则以r开头,表示不需要转义,注意尖号(^)和美元符号($)
- `/one/two/three` 配对 r'^one/
- `/oo/one/two/three` 不配对 r'^one/"
- `/one/two/three/` 配对 r'three/$'
- `/oo/one/two/three/oo/` 不配对 r'three/$"
- 开头不需要有反斜杠
- 如果从上向下都没有找到合适的匹配内容,则报错
# 2. 正常映射
- 把某一个符合RE的URL映射到事物处理函数中去
- 举例如下:
from showeast import views as sv
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^normalmap/', sv.normalmap),
]
# 3. URL中带参数映射
- 在事件处理代码中需要由URL传入参数,形如 /myurl/param中的param
- 参数都是字符串形式,如果需要整数等形式需要自行转换
- 通常的形式如下:
```
/search/page/432 中的 432需要经常性变换,所以设置成参数比较合适
```
# 4. URL在app中处理
- 如果所有应用URL都集中tulingxueyuan/urls.py中,可能导致文件的臃肿
- 可以把urls具体功能逐渐分散到每个app中
- 从django.conf.urls 导入 include
- 注意此时RE部分的写法
- 添加include导入
- 使用方法
- 确保include被导入
- 写主路由的开头url
- 写子路由
- 编写views函数
- 同样可以使用参数
# 5. URL中的嵌套参数
- 捕获某个参数的一部分
- 例如URL /index/page-3, 需要捕获数字3作为参数
```
url(r'index_1/(page-(\d+)/)?$', sv.myindex_1), #不太好
url(r'index_2/(?:page-(?P<page_number>\d+)/)?$', sv.myindex_2), #好
```
- 上述例子会得到两个参数,但 ?: 表明忽略此参数
# 6. 传递额外参数
- 参数不仅仅来自以URL,还可能是我们自己定义的内容
```
url(r'extrem/$', sv.extremParam, {'name':"liuying"}),
```
- 附加参数同样适用于include语句,此时对include内所有都添加
# 7. URL的反向解析
- 防止硬编码
- 本质上是对每一个URL进行命名
- 以后再编码代码中使用URL的值,原则上都应该使用反向解析
01-Django-urls的更多相关文章
- Django 01 django基本介绍及环境搭建
Django 01 django基本介绍及环境搭建 #http服务器 #用来接收用户请求,并将请求转发给web应用框架进行处理 #Web应用框架 #处理完请求后在发送给http服务器,http服务器在 ...
- Django—urls系统:urls基础
Django的urls系统简介 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映 ...
- Django urls 路由
写url和视图的的对应关系 from django.conf.urls import url from django.contrib import admin from app名 import vie ...
- django urls路由匹配分发
django urls路由匹配分发 一.urls配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对 ...
- 补充01 Django 类视图
视图 函数视图[Function Base View] 以函数的方式定义的视图称为函数视图,函数视图便于理解.但是遇到一个视图对应的路径提供了多种不同HTTP请求方式的支持时,便需要在一个函数中编写不 ...
- angular route 与 django urls 冲突怎么解决?
app.js var app = angular.module('app', [ 'ngResource', 'ngRoute', // 'ui.bootstrap', // 'ngResource' ...
- 01.Django基础一之web框架的本质
一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...
- django urls 配置小记
django urls 配置小记 首先应了解 django2.0在url的配置上较之以前的版本有点区别,在之前的版本是通过django.conf.urls.url函数来实现路径配置的 urlpatte ...
- Python学习第二十八课——Django(urls)
Django框架中的urls配置: 首先通过pycharm创建一个Django项目: 例如要写blog的功能:则在digango_lesson中的urls代码如下: """ ...
- 12、django.urls.exceptions.NoReverseMatch:
问题: django.urls.exceptions.NoReverseMatch: Reverse for 'project_star' with keyword arguments '{'proj ...
随机推荐
- CF Round #569 Div2(contest1180)
比赛链接:http://codeforces.com/contest/1180 Problem A 题意:给出n,问方块数.看图理解... Solution: 找一找规律就可以了,发现方块数为2n*( ...
- CCPC哈尔滨E题
一堆序列拼接起来,找出现次数大于n/2的数 假设一个数出现次数大于n/2 那么它减去其他数出现的次数一定非负: = c) { cnt += t[i]; } } } } //cout<<c& ...
- Oracle升级11.2.0.3-11.2.0.4(Windows)
背景:解决11.2.0.3带来的ora-08103错误,将数据库seinescm升级到11.2.0.4版本方法:另辟路劲安装11.2.0.4版本数据库软件,再对现有的数据库进行升级步骤:1. 检 ...
- (一)SQL -- 基础知识
SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言. 优点:功能强.效率高.简单易学易维护. 缺点:非过程化语言,大多数语言都是独立执行,与上下文无关,而大多数 应用都是一个完整的过程,显然 ...
- 读读《编写高质量代码:改善Java程序的151条建议》
这本书可以作为平时写代码的一个参考书,这本书以我个人读的经验看来,最好是通过平时代码驱动的方式来读,这样吸收的快,也读的快. 这本书主要讲什么,我自己用了个思维导图概述: 根据这种导图可知,主要讲的就 ...
- vue树形菜单
vue树形菜单 由于项目原因,没有使用ui框架上的树形菜单,所以自己动手并参考大佬的代码写了一个树形菜单的组件,话不多说,直接上代码.html代码js代码直接调用api 把请求到的数据直接赋值给per ...
- MySQL课下作业
目录 MySQL 实验内容 实验代码 实验截图 代码链接 MySQL 实验内容 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/63713 ...
- 不知道Java类文件结构的同学,看这篇文章就够了
一.前言 代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步.经过多年的发展,目前的计算机仍然只能识别0和1,但是由于近10年内虚拟机以及大量建立在虚拟机之上的程 ...
- 网络对抗技术 20165220 Exp7 网络欺诈防范
网络对抗技术 20165220 Exp7 网络欺诈防范 实验任务 (1)简单应用SET工具建立冒名网站 (1分) (2)ettercap DNS spoof (1分) (3)结合应用两种技术,用DNS ...
- jieba (中文词频统计) 、collections (字频统计)、WordCloud (词云)
py库: jieba (中文词频统计) .collections (字频统计).WordCloud (词云) 先来个最简单的: # 查找列表中出现次数最多的值 ls = [1, 2, 3, 4, 5, ...