Django基础知识点记录:安装、配置、URL规则

背景:

因为在学习django框架知识,顺便记录下相关知识点。
仅仅是学习过程中的记录,没有系统性总结。
相关知识细节,请参考《玩转Django2.0》黄永祥著。 或者官方文档。

django环境

  • 安装django: pip install Django
  • 创建项目: 命令行下->django-admin startproject project_name (#eg. django-admin
    startproject myWeb)
  • 创建应用: 命令行下-> cd myWeb -> python manage.py startapp app_name (#eg.
    python manage.py startapp myApp)
  • 启动项目: python manage.py runserver 80(端口自己定义,80是http默认端口)

django配置

django的配置文件是项目根目录下的settings.py。

django url规则

django中的url配置在一个名为urls.py文件中。需要注意的是,在django项目中和应用中都有一个urls.py文件。

  • 应用中的urls.py: 将属于该应用的URL都写入到该文件中。
  • 项目中的urls.py: 统一管理每个应用的urls.py。如果你愿意,也可以直接写有效的URL,此时用法与应用中的urls.py一致。
    通俗来说,项目中的urls.py像是一个包工头,应用中的urls.py是纯粹的打工人,包工头接到活了,就将活分派给某个打工人。即:

“当程序收到用户请求时,首选在项目中的urls.py查找该URL是属于哪个应用,然后再从应用中的urls.py找到具体的URL信息”。------引用自《玩转Django2.0》

带变量的URL

path('<year>/<int:month>/<slug:day>', views.mydate)
  • <>符号设置变量。
  • 格式如:<数据类型:变量名>
  • 示例:、 int:month
  • 当数据类型省略时,默认为str类型。

带正则表达式的URL

re_path("(?P<year>[0-9]{4}).html", views.myyear)
  • re_path是django.urls中导入的方法
  • ?P是固定格式
  • 是django url变量编写规则
  • [0-9]{4}是正则表达式匹配模式。详情请了解正则表达式语法规则。

path和re_path函数的name参数

re_path("(?P<year>[0-9]{4}).html", views.myyear, name='myyear')

name参数的含义是给URL取个别名,使得可以在html中通过别名引用该URL,如上示例,myyear将引用"(?P<year>[0-9]{4}).html"。示例中URL包含year变量,所以在html中,需要将myyear赋值,该值即是year。

<div><a href="{% url 'myyear' 2099%}">2018 Archive</a></div>

a标签代表的URL信息是:\2099.html

path和re_path函数中的额外变量参数

前面有说URL中可以带变量,但这两个函数还可以接受一个字典参数,字典中的内容就是额外变量参数。

re_path("(?P<year>[0-9]{4}).html", views.myyear, {'month':'09'}, name='myyear')

这条URL有两个变量,分别是year , month。
所以视图函数myyear也需要两个参数。

def myyear(request, year, month):
	return render(request, 'myyear.html', {'m':month})

myyear中的month参数来自re_path函数中的{‘month’:‘09’}。
render函数第三个参数{‘m’:month},接受month参数的值,并赋给字典key “m”,'m’将传递给myyear.html中模板变量。

<div><a href="{% url 'myyear' 2099%}">2018 {{ m }} Archive</a></div>

以上,a 标签的值就是 2018 09 Archive

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值