urls.py 配置方法

1、先配置全局工程下的 url 分发,通过不同的url 匹配规则,分发到不同的app (app可理解为不同的站点)

一般设置全局工程的 url.py 分发到 ----------->不同站点(app)下的 urls.py

from django.conf.urls import url,include #include 要新增

from django.contrib import admin

urlpatterns = [

url(r'^admin/', admin.site.urls), #系统默认

url(r'^android/',include('android.urls')), #新增分发到APP下的ulrs

]

2、配置APP下的 urls.py 映射 ,通过正则表达式,来分发对应的view.py下的函数

from django.conf.urls import url

from android.views import index,login,list,logout

urlpatterns = [

url(r'^index/',index),

url(r'^login/',login),

url(r'^list/(?P\d*)/',list), #推荐?P版型正则表达式规则,方便理解

url(r'^list/(?P\w*)/',list) \d* 0到多个数字,\w* 0到多个字母

url(r'^logout/',logout,name='logout'), #通过name 命名后,模版调用更加方便

]

3、在站点(app)下的 views.py 下,写出对应的解析函数,配置成功

from django.shortcuts import render

from django.http import HttpResponse

# Create your views here.

def index(request):

return HttpResponse('index')

def login(request):

return HttpResponse('index')

def list(request,name):

return HttpResponse('list')

4. 在CMD 下,进入mange.py目录,并运行 manage.py (内置服务器), 即可开启浏览器测试

python manage.py runserver

特别说明:

在django 中,浏览器的 网址 尾部 会默认加上 '/' 如:http:// www.baidu.com/

这是受配置文件 setting.py中APPEND_SLASH项控制的 ,默认为 True

如果不需要网址末尾加斜杠 '/' ,在setting.py中新增APPEND_SLASH=Flase即可

导入多个app 的视图函数:

如果导入多个app 的 视图函数,若遇到重名,则需要 as 转换

from django.conf.urls import url

from django.contrib import admin

from app01 import views

from session import views as session_views #用as 转换

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^index/(\w*)', views.index),

url(r'^login/$', session_views.login), #使用转换后的视图函数

url(r'^main/$', session_views.main),

url(r'^logout/$', session_views.logout),

]

url name

注意: url 配置 成 name ='xxx' ,可对 url 关系进行命名,以后根据此名称生成想要的url

如果url 太长,可以用此种方法

如 :urls.py  --  url(r'^asdasdasdadasdasdasdasd/',logout,name='logout')

html模版 :

对应浏览器上的url 为: /asdasdasdadasdasdasdasd/3/

name 扩展

from django.urls import reverse   #可帮我们生成想要的url

urls.py

url(r'^asdfasdfasdf/', views.index, name='i1'), #规则1

url(r'^yug/(\d+)/(\d+)/', views.index, name='i2'),

url(r'^buy/(?P\d+)/(?P\d+)/', views.index, name='i3'),

views.py

from django.urls import reverse

def func(request, *args, **kwargs):

url1 = reverse('i1')                               # asdfasdfasdf/ 生成的url,根据规则1

url2 = reverse('i2', args=(1,2,))                 # yug/1/2/

url3 = reverse('i3', kwargs={'pid': 1, "nid": 9}) # buy/1/9/

html 模版

# xxx.html

{% url "i1" %}               # asdfasdfasdf/

{% url "i2" 1 2 %}           # yug/1/2/

{% url "i3" pid=1 nid=9 %}   # buy/1/9/

其他url调用

# 当前的URL

request.path_info

url 默认值

urls.py

url(r'^index/$', views.index {'name':root},

views.py

def index(request,name):

pass

urls命名空间

urls include分发 ,加name 加 namespace ,案例

1、主urls.py

from django.conf.urls import url,include #include 要新增

urlpatterns = [

url(r'^a/',include('app01.urls' ,namespace='author')),# namespace 命令空间

]

2、app01.urls

app_name = 'app01' #添加app_name = 'app01'

urlpatterns = [

url(r'^index/',views.index name='lee'),

]

3、view.py

from django.urls import reverse

def index(request):

v = reverse('author:lee')

print(v) #生成 的ulr 为 /a/index/

4、html 调用url

{% url 'author:lee'%}

FBV 和 CBV

FBV:  function base views 函数对应视图 ,上述博客内容 说明的都是函数对应视图

CBV: class vase views    类对应视图

CBV (类对应视图)使用方法:

views.py

from django.views import View #必须导入 View

class Home(View) #该类必须继承 View 类

def post(self,request): #post 请求放post 函数里面 ,self,request 必填

pass

def get(self,request): #get 请求放get 函数里面

pass

不同的请求可以放在不同的函数里面(get,post,put),是因为,定义的类继承了 View 类的 dispath() 方法

默认定义以下方法后,可以自动识别

['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']

urls.py

from xxxapp import views

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^home/', views.Home.as_view()), #必须为 vews.xx类.as_view()

]

django外调用url_Django urls 配置 ,模版url调用相关推荐

  1. java调用远程 接口_java通过url调用远程接口返回json数据

    java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...

  2. django外调用url_Django学习(url配置及参数获取)

    Django 如何处理一个请求 当用户通过浏览器发送一个请求给Django网站时,Django执行过程: 1.Django首先在配置文件setting.py中找到 :ROOT_URLCONF = 't ...

  3. django外调用url_Django url

    三 分组命名匹配 上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值并以位置参数形式传递给视图. 在更高级的用法中,可以使用分组命名匹配的正则表达式组来捕获URL中的值并以关键字参 ...

  4. [Django学习]第三章 视图和url配置

    2019独角兽企业重金招聘Python工程师标准>>> 在上一章使用django-admin.py startproject tests制作的项目中的tests文件夹里,创建一个vi ...

  5. Django框架view.py,models.py,urls.py用法及调用关系的个人理解

    一.框架最让人头疼的问题 利用框架来编写程序,会大大降低编写难度,但是如果不了解框架的调用关系及各个文件的作用,在遇到error时往往会很头疼. 以前曾经编写过Android程序,网络上对Androi ...

  6. python后台架构Django教程——路由映射urls

    全栈工程师开发手册 (作者:栾鹏) 本文衔接至python后台架构Django开发全解. 有其他问题请先阅读:http://blog.csdn.net/luanpeng825485697/articl ...

  7. django oracle数据库配置,django连接oracle时setting 配置方法

    下一步是将新创建的应用程序与项目相关联.为此,您需要编辑 myproj 文件夹中的 settings.py 文件,将字符串"myproj.myapp"追加到 INSTALLED_A ...

  8. Day47 Django基础部分、路由配置、空间名称

    1.最简单的路由配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个U ...

  9. Django学习之十一:真正理解Django的路由分发和反解url原理

    目录 URL Dispatcher 简介 模式概念 对比URLPattern 与 URLResolver (多态的体现) 构建子路由几种方式 反解url算法逻辑 URL Dispatcher 简介 d ...

最新文章

  1. vhdl变量赋初值_1.6 C++变量
  2. display属性_前端基础:Grid 布局教程,重新复习grid布局的容器和项目属性
  3. ext如何将值存入变量_变量类型之值类型与引用类型
  4. struts2,jsp,freemarker编程小技巧
  5. matlab save将变量值保存为mat
  6. C++ 数据结构 线性链表
  7. 小白零基础怎么学习Java?不要慌
  8. xcode 证书生成、加载
  9. 代码调试神器:VS Code 开源新工具!
  10. 生成指定位数的坐标方法-2优化版本--建议使用的版本
  11. spark安装及环境配置(win10)
  12. 你对云存储的安全性了解多少?
  13. 网卡82546驱动linux,英特尔网卡驱动 Intel PRO100/1000/10GbE Win7/Win8/2
  14. 《出版专业实务》(2015年版初级)思考与练习答案 第一章
  15. 制作u盘winpe启动盘_u盘启动盘制作工具软件哪个好?
  16. Android安全-应用沙盒简述
  17. unity3d 任务系统设计 mmo
  18. 怎么对电脑的DNS进行设置从而使网速更快
  19. 三对角行列式计算(涉及等差数列的构造+一元二次方程两个解的关系)
  20. 小米手机任意版本MIUI安装Google Play服务

热门文章

  1. 电脑平时好好的,今天连上了wifi,浏览器却加载不出网页,解决措施。
  2. 第六届蓝桥杯六角填数
  3. 2022 ICPC 47 沈阳 DCLF
  4. python|教你一行代码用Ta的名字比心
  5. 黑龙江最新水利水电安全员模拟真题集及答案解析
  6. python之mean函数,计算多维
  7. linux中文乱码(ubuntu虚拟机) 保证解决
  8. 计算机关系差运算图解,关系运算子
  9. 多多自走棋新手向阵容教程
  10. 莎斯莱思时尚男装2019秋季新品上市!