2024-09-25 04:17:35
导读:很多朋友问到关于django3怎么配置路由的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
【Django】路由配置:反向解析、重定向简单的路由配置
【注意事项】:
(1):若要从URL中捕获一个值,只需要在它周围放置一对圆括号。
(2):不需要添加一个前导的反斜杠,因为每个URL都有。例如,应该是^articles而不是^/articles。
(3):每个正则表达式前面的'r'是可选的但是建议加上。它告诉Python这个字符串是“原始的”——字符串中任何字符都不应该转义
(4):urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续
在使用Django项目时,一个常见的需求是获得URL的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等)。
在需要URL的地方,对于不同层级,Django提供不同的工具用于URL反查:
反向解析的过程:用户通过/login/这个接口到达urls.py,然后通过path("login/",views.login,name="log")到达views.py(用于视图函数)
在实现逻辑功能时,可能会需要实现重定向的功能。
(1)、通过redirect函数或HttpResponseRedirect函数硬编码的形式
(2)、通过URLconf路由命名空间的形式。
(3)、如果在逻辑函数中不做任何处理,可以直接在url中配置。
ajax请求接口里的数据,然后显示在页面里1、在模板中使用了jQuery插件封装的ajax,我用到的是get请求,这在django中涉及到模板和静态文件的使用。
2、然后配置路由,因为我们在ajax中请求的路由地址是getdata,所以在django路由中也要设计这个路由url,并且用views的函数处理路由。
3、然后用视图函数处理对应路由url的请求,然后导入方法JsonResponse,然后我自定义一个字符串,并且用键值对字典的形式返回。注意,最好用JsonResponse方法返回数据,不然可能得不到json格式的数据。
4、get请求中的data参数就是存储后台返回的数据的,但是这个数据是json格式的,所以我们可以通过data.键名(刚才定义的u),这样就可以取出数据了。
5、运行django服务器之后,点击按钮,那么就会开始请求数据,然后弹出数据。可以看到数据跟后台定义的数据一模一样。
Django路由系统(一)urlpatterns=[
url(正则表达式,views视图函数,参数,别名),
]
注意:
Django2.0版本中的路由系统已经替换成下面的写法(官方文档):url替换成path
参数说明:
正则表达式:一个正则表达式字符串,网站访问路径
views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
参数:可选的要传递给视图函数的默认参数(字典形式)
别名:一个可选的name参数
注意事项
urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续。
若要从URL中捕获一个值,只需要在它周围放置一对圆括号(分组匹配)。
不需要添加一个前导的反斜杠,因为每个URL都有。例如,应该是^articles而不是^/articles。
每个正则表达式前面的'r'是可选的但是建议加上。
是否开启URL访问地址后面不为/跳转至带有/的路径的配置项
APPEND_SLASH=True
Djangosettings.py配置文件中默认没有APPEND_SLASH这个参数,但Django默认这个参数为APPEND_SLASH=True。其作用就是自动在网址结尾加'/'。
如果在settings.py中设置了APPEND_SLASH=False,此时我们再请求时就会提示找不到页面。
上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值并以位置参数形式传递给视图。
在更高级的用法中,可以使用分组命名匹配的正则表达式组来捕获URL中的值并以关键字参数形式传递给视图。
在Python的正则表达式中,分组命名正则表达式组的语法是(?Pnamepattern),其中name是组的名称,pattern是要匹配的模式。
比如:注意P是大写
deftest(request,year,month):函数引入year和month
以上方式捕获的参数永远都是字符串
每个在URLconf中捕获的参数都作为一个普通的Python字符串传递给视图,无论正则表达式使用的是什么匹配方式。
python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件在Django项目开发中,不能像正常web开发一样通过'imgs/bg.jpg'访问本地静态文件,需要做一些配置,才能实现静态文件的访问。
一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。
二、项目配置
1、打开settings.py,在底部添加:
2、打开urls.py,在urlpatterns中添加:(注意,如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了importsettings):
(不过我经过实测,不加这一个,也可以完成静态文件的访问)
3、在html模板最上面添加:
然后在需要的地方按照这个格式进行调用,如:
最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。
djangofromdjango.conf.urlsimporturl
fromdjango.conf.urlsimporturl
在django4.0已经被删除
可使用fromdjango.urlsimportpath进行配置路由
结语:以上就是首席CTO笔记为大家整理的关于django3怎么配置路由的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django3怎么配置路由的相关内容别忘了在本站进行查找喔。