7天学习计划之Python网络编程_Django-[第二天]

# Python网络编程_Django

唯一能够失去的只有现在



前言

Django是一个开源代码的Web应用框架,采用了MTV模式,即模型(Model)、模板(Template)、和试图(Views)。模型:负责数据存取层,处理与数据相关的事物;模板:处理与表现相关的决定;视图:存取模型及调取恰当模板的相关逻辑。其简便、快捷的开发数据库驱动的网站,有许多强大的第三方库。以下过程和程序采用python3.7,Django3


三、路由

一个完整的路由包含:路由地址、视图函数、可选变量、路由命名。路由地址即网址,视图函数即App的views.py文件定义的函数。过程是Django从当前请求信息获取路由地址,并在路由列表匹配相应的路由信息,在执行路由信息所指向的视图函数

1.路由定义

第一步,添加在good文件夹里添加一个名为urls的空白.py文件,将所有属于App的路由都写入该文件,首先设置urls.py

from . import views
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('',views.goods())
    ]

再设置views.py

# Create your views here.
def goods(request):
value = 'this is test!'
print(value)
return render(request,'index.html')

2.路由变量

为了使一个路由可以代表多个页面,可以设置路由变量,包括:
字符类型:任何非空字符串
整型:匹配0和正整数
slug:注释、后缀、附属
uuid:匹配一个uuid格式的对象
下面重新定义一个路由:

path('<year>/<int:month>/<slug:day>',views.myvariable)

定义处理函数:

def myvariable(request,year,month,day):
	return HttpResponse(str(year)+'/'+str(month)+'/'+str(day))

还可以通过地址外定义:

下面重新定义一个路由:

path('',views.goods,{'month':'2019/10/10'}),

定义处理函数:

def goods(request, month):
	return HttpResponse('这是变量:'+month)

3.命名空间与路由命名

当网站需要的网页增多,为了更好的管理而设置命名空间与路由命名,一个是在include下,一个是path下。

3.1namespace
path('',include(('goods.urls','user'),namespace='goods')),
path('user/', include(('user.urls','user'),namespace='user'))

作用就是相当于给多个路名、、路由合集命名

3.2name
path('goods',views.goods,name ='goods' ),
path('login',views.userlogin,name='userlogin'),

4.路由使用

4.1地址连接

第一步设置设置path

path('', views.goods),
path('<year>', views.userlogin, name='userlogin')

第二步设置view

def goods(request):
 	return render(request,'index.html')
def userlogin(request,year):
 	return HttpResponse('这是变量userlogin'+str(year))

第三步修改html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello new</title>
</head>
<body>
   <span>hello new</span>
<br>	
   <a href="{% url
'goods:userlogin' '2020' %}">查看年</a>	
</body>	
</html>	

5.反向解析

4.1.reverse

通过路由命名或可调用视图生成路由地址

4.2resolve

通过路由地址获取对象信息

6.路由重定向

在浏览器访问某个网页时直接自动跳转,由其它网址生成相应。


总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值