django外调用url_Django urls 配置 ,模版url调用
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调用相关推荐
- java调用远程 接口_java通过url调用远程接口返回json数据
java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...
- django外调用url_Django学习(url配置及参数获取)
Django 如何处理一个请求 当用户通过浏览器发送一个请求给Django网站时,Django执行过程: 1.Django首先在配置文件setting.py中找到 :ROOT_URLCONF = 't ...
- django外调用url_Django url
三 分组命名匹配 上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值并以位置参数形式传递给视图. 在更高级的用法中,可以使用分组命名匹配的正则表达式组来捕获URL中的值并以关键字参 ...
- [Django学习]第三章 视图和url配置
2019独角兽企业重金招聘Python工程师标准>>> 在上一章使用django-admin.py startproject tests制作的项目中的tests文件夹里,创建一个vi ...
- Django框架view.py,models.py,urls.py用法及调用关系的个人理解
一.框架最让人头疼的问题 利用框架来编写程序,会大大降低编写难度,但是如果不了解框架的调用关系及各个文件的作用,在遇到error时往往会很头疼. 以前曾经编写过Android程序,网络上对Androi ...
- python后台架构Django教程——路由映射urls
全栈工程师开发手册 (作者:栾鹏) 本文衔接至python后台架构Django开发全解. 有其他问题请先阅读:http://blog.csdn.net/luanpeng825485697/articl ...
- django oracle数据库配置,django连接oracle时setting 配置方法
下一步是将新创建的应用程序与项目相关联.为此,您需要编辑 myproj 文件夹中的 settings.py 文件,将字符串"myproj.myapp"追加到 INSTALLED_A ...
- Day47 Django基础部分、路由配置、空间名称
1.最简单的路由配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个U ...
- Django学习之十一:真正理解Django的路由分发和反解url原理
目录 URL Dispatcher 简介 模式概念 对比URLPattern 与 URLResolver (多态的体现) 构建子路由几种方式 反解url算法逻辑 URL Dispatcher 简介 d ...
最新文章
- vhdl变量赋初值_1.6 C++变量
- display属性_前端基础:Grid 布局教程,重新复习grid布局的容器和项目属性
- ext如何将值存入变量_变量类型之值类型与引用类型
- struts2,jsp,freemarker编程小技巧
- matlab save将变量值保存为mat
- C++ 数据结构 线性链表
- 小白零基础怎么学习Java?不要慌
- xcode 证书生成、加载
- 代码调试神器:VS Code 开源新工具!
- 生成指定位数的坐标方法-2优化版本--建议使用的版本
- spark安装及环境配置(win10)
- 你对云存储的安全性了解多少?
- 网卡82546驱动linux,英特尔网卡驱动 Intel PRO100/1000/10GbE Win7/Win8/2
- 《出版专业实务》(2015年版初级)思考与练习答案 第一章
- 制作u盘winpe启动盘_u盘启动盘制作工具软件哪个好?
- Android安全-应用沙盒简述
- unity3d 任务系统设计 mmo
- 怎么对电脑的DNS进行设置从而使网速更快
- 三对角行列式计算(涉及等差数列的构造+一元二次方程两个解的关系)
- 小米手机任意版本MIUI安装Google Play服务