当前位置: 首页 > 网络应用技术

为什么Django必须配置URL(2023年最新共享)

时间:2023-03-09 01:33:17 网络应用技术

  指南:今天,首席CTO注释将与您分享为什么Django必须配置URL的相关内容。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  1.什么是urls.py

  2. urls.py文件位置

  3. urls.py配置格式

  urlpatterns =模式('view prefix',

  URL(r'^正则表达式1/$','view函数1',name =“ url标识符1”),

  URL(r'^正则表达式2/$','view函数2',name =“ url标识2”),,

  治愈

  4.如何在urls.py中工作

  如果您只是使用静态,则配置将比媒体少一个步骤,并且将比较以下内容。当它到达静态时,您必须不得不谈论Django的开发环境和部署环境之间的区别。django配置文件设置.py调试变量是主要区别。debug = true表示,在开发环境(调试模式)下,在开发环境下(调试模式),调试模式,调试= false),相反,它用于正式部署环境中。两个,例如缓存,错误信息的方式等以及今天的静态文件的处理方法。开发环境中的静态文件由Django随附的Web服务器处理(这将是更多方面)。如果调试设置为false,则Web服务器带有Django自然不会处理静态文件。静态文件已移交给NGINX,可以处理Apache(这将更有效)。

  让我们谈谈开发环境中静态配置的方式。

  这次,我主要使用Django版本1.4版本对其进行配置。必须提前声明这一点,因为1.4之后,Django的项目结构发生了很大变化。如果将以下配置方法放在Django 1.3上,则绝对不合适,值得注意。StaitC配置仅在settings.py中进行。

  调试= true

  这种设置环境在开发环境中。

  然后自己构建一个可变site_root。该变量不是必需的,但是为了重复使用,可以随机使用该名称。

  导入操作系统

  sit_root = os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')

  变量值项的根目录是settings.py的存储位置。

  然后将值分配给静态文件变量,告诉Django,静态文件在哪里

  static_root = os.path.join(site_root,'static')

  说到哪个,我应该谈论项目文件结构。例如,这很容易让人,这段时间的项目结构如下:

  我的项目

  - - 我的项目

  ----------__init__.py

  --------设置

  -------- urls.py

  -------- wsgi.py

  - - 博客

  ----------__init__.py

  --------模型

  --------视频

  ------- test.py

  - - 静止的

  -------- CSS

  -------------- style.css

  -------- JS

  ------------------- jQuery.js

  - - - - 图片

  --------------------我JPG

  - - 媒体

  --------上传

  注意项目的结构,您会发现Site_root是

  我的项目

  - - 我的项目

  路径。

  static_root是

  我的项目

  - - 媒体

  路径。

  好的,然后配置说

  static_url ='/static/'

  模板中使用的静态文件URL的后缀。

  最后一个关键部分是staticfiles_dirs配置以下

  staticfiles_dirs =(

  (“ css”,os.path.join(static_root,'css')),),),),),),

  (“ JS”,OS.Path.join(static_root,'js'),

  (“图像”,os.path.join(static_root,'images'),),

  治愈

  简而言之,静态文件夹在项目中使用了三个CSS JS Images文件夹(请参阅项目结构)。他们的道路是:

  os.path.join(static_root,'css'),os.path.join(static_root,'js'),os.path.join(static_root,'images');

  我们给了他们三个别名CSS,JS,图像(您可以随意给出它,但是为了简单的记忆,我们的原始名称指定别名)

  在这一点上,Staitc已完成,并且无需在URLS.PY中配置相关内容。Django将自动找到分析静态文件的正确途径。与媒体相比,配置中的一步也要少。

  配置后,您可以在模板中正常使用静态文件。如何使用?请使用模板说明。

  呢Doctype HTML

  html lang =“ zh-cn”

  头

  meta charset = utf-8

  titlestaitc示例/标题

  链接rel =“ stylesheet” type =“ text/css” href =” https://www.shouxicto.com/article/ {{static_url}} css/style.css/style.css“媒体”媒体=“屏幕” //

  脚本类型=“ text/javascript” src =“ https://www.shouxicto.com/article/ {{static_url}} js/jquery.js”/script

  /头

  身体

  img src =“ https://www.shouxicto.com/article/ {{static_url}} images/me.jpg”“ alt =” [#0#]

  /身体

  /html

  注意{{static_url}}是在设置中使用static_url变量,然后分析:/static/。

  {{static_url}} css/style.css最终解析了我们想要的内容:/static/css/style.css,django将根据配置文件找到相应的文件。

  结束时,让我们谈谈如何建立正式的部署环境:

  调试= false

  首先将调试设置为false,将DJANGO环境视为正式的非示例模式,然后Django将不再单独处理静态页面。最后,将静态文件移交给nginx apache进行处理。

  讨论NGINX如何正确分析静态文件。在服务器中添加本地静态文件处理

  位置 /静态 / {

  root/home/www-data/twogoo/myproject/;

  }

  还有一个容易犯错误的地方,这是路径。一些学生经常指定这样的路径:/home/www-data/twogoo/myproject/staitc/;因此,nginx不应该找到静态文件,因为nginx将运行// home/www-data/twogoo/myproject/staitc/staitc/找到它。请注意,在静态文件处理中,您会更加顺畅。

  初学者通常无法区分两者之间的差异。在此简要介绍下,URL是Django 1.x的写作。p在django2.1中,它开始放弃django1.x.in django2.x中的URL写作,path and re_path.re_path()函数描述了URL配置的两个函数。可以将其视为Django 1.X中的URL函数,也就是说,您可以在路径中定期使用。

  路径和URL是两个不同的模块。效果是响应返回页面。路径调用python第三 - 方模块或框架,URL是自定义模块,例如视图下的DEF函数对应于您的URL中的参数值,然后,然后

  例如:

  settings.py文件中有一个root_urlconf设置,该文件设置为匹配哪个URL文件在访问URL时用于匹配网站。

  url或re_path应该复杂(r'^blog/(?p [0-9] {4})/')首先需要启动和结束结束符号)结束字符,匹配a()的参数是匹配的参数范围,

  (?p匹配字段名称正则表达式)

  参数和域名是否不包含get或post请求方法,例如不匹配?

  您可以为请求参数设置默认值

  自定义错误页面关键字handler400 = blog.views.page_no_find

  如何使用参数路径(“ blog/str:string/”)要简单得多,也就是说,洒水,正面是str的类型代表参数,以及后面参数的参数名称

  捕获URL中的参数需要使用括号中的值类型,以指定括号中的值类型,例如int:astr:link,有很多类型,例如:

  如果不足以定义路径和转换器语法的URL模式,则需要使用正则表达式。目前,您需要使用re_path()而不是路径()。

  示例:传递数字数的参数

  在python3中使用django2时,设置URL时,您会遇到一些坑。在此处记录。

  在系统的urls.py中,使用1.x的URL方法。

  在2.0中,它建议使用路径模块,因此在此处重写。引用

  注意:

  1. thex中的写作是

  当前写作

  在此比较中可以理解这一点,使用的链接是:钥匙= ABC

  1.x写作方法

  但是在2.0中,您以这种方式编写,您将报告一个错误,什么App_name,您可以自己看到,如何解决它,实际上非常简单。只要您在自己的项目urls.py中添加此句子。如果您不添加ITAN错误,

  笔记:

  在互联网的历史中,统一资源定位(URL)的发明是一个非常基本的步骤。统一资源定位符号的语法是一般且可扩展的。它使用ASCII代码的一部分来表示Internet的地址。统一资源定位符号的开头标记了计算机网络使用的网络协议。

  在Django中,您通常需要配置图片,视频和其他格式文件。在配置过程中,它更为复杂。这是一个记录:

  将以下目录添加到文件末尾以存储上传的文件

  在模型中,图像字段是%y代表年份的年份,%m表示一个月。上传文件时,表示将上传到图像目录和当前限制目录的文件夹。

  image = models.imagefield(upload_to =“ image/%y/%m”,空白= true)

  其中,SRC中的{{Media_url}}将在模板中渲染,以用作 /媒体 /

  如果要在模板中使用{{Media_url}},请在“ template”的“ context_processis”选项中添加django.template.contexors.media。

  通过上述步骤,结果基本上可以正常呈现在前端,但是您需要在图片中添加一个URL才能正常显示。

  第一个行为介绍了静态文件的服务器,第二个行为是在配置文件中的介质_root中介绍的

  加入URL:

  不需要

  来自django.conf.urls导入模式,包括URL

  #未点击接下来的两行以启用管理员:

  #来自django.contrib导入管理员

  #admin.autodiscover()

  urlpatterns =模式('',,

  # 例子:

  #url(r'^$','nowamagic.views.home',name ='home'),

  #url(r'^nowamagic/',include('nowamagic.foo.urls'),),),),

  #不注册管理员/文档/文档belw启用管理文档:

  #url(r'^admin/doc/',include('django.contrib.admindocs.urls'),),),),),),),),),),),),),),)

  #取消注释下一行以启用管理员:

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

  治愈

  只要您配置这样的规则,我也曾谈论过它:

  [python]查看普通复制打印?

  (r'^hello/$',你好),

  您可以在Views.py中定义Hello函数。

  该图案包含一个尖锐的昵称(^)和一个美元符号($)。这些是正则表达式符号,具有特定的含义:上箭头需要表达式以符合字符串的头部,并且美元符号需要表达式要匹配字符串的尾巴。^Hello/ $匹配Hello/ String,也就是说,在帮助Hello/ hello/ hello/)函数之后,如果没有'$',请输入hello1/;Hello2/ Will对应于Hello()该函数已显示。

  Hello功能我们可以随便写:

  [python]查看普通复制打印?

  来自django.http导入httpresponse,http404

  def hello(请求):#each视图函数至少具有一个参数,通常称为请求。

  返回httpresponse(“ Hello Nowamagic!”)#a视图功能必须返回httpresponse

  然后,我需要显示主页,也就是说,域名直接映射到某个视图功能,那么我该如何编写?

  [python]查看普通复制打印?

  (r'^$',索引),

  索引函数是生成主页的视图函数。

  顺便说一句,在视图函数中,返回httpresponseredirect('https://www.shouxicto.com/'):返回到主页,即127.0.0.1。

  结论:以上是为每个人编写的主要CTO注释,说明Django为什么必须配置URL的所有内容。感谢您花时间阅读本网站的内容。我希望这对您有帮助。有关为什么Django必须配置与Urldon相关的URL的更多信息,请不要忘记在此站点上找到它。