django3怎么配置路由(2023年最新解答)

我想请分析下,django3怎么配置路由(2023年最新解答)
最新回答
风与纸片人

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怎么配置路由的相关内容别忘了在本站进行查找喔。