web开发python第二课 url路由

一、Django中的app

1、Django中的一个APP就是一个应用的意思

2、项目可以包含多个app(多个应用)

3、一个项目可以对应一个网站(生活服务类网站)

4、一个app对应网站的一个应用(二手交易、家政服务)

二、创建一个app

执行命令   python manage.py startapp dan  # da 是app的名字

三、http请求处理

通过如下网址获取所有学生信息

http://localhost/student

具体过程如下:

1、请求发送到后台

2、wsgi server 传递给django框架

3、Django框架查看路由表

4、根据路由表配置,调用相应的函数(方法)处理

四、定义消息处理函数

1、修改文件 main/views.py

studentTable = {
    'zhangsan':{
        'loginname':'zhangsan',
        'name':u'张三',
        'age':16,
    },
    'lisi':{
        'loginname':'wanger',
        'name':u'李四',
        'age':18,
    },
    'xudandan':{
        'loginname':'xu',
        'name':u'徐',
        'age':23,
    },

}

def show_all_students(request):
    allName = [one['name'] for one in studentTable.values()] #列表生成式
    response = u'''
        <!DOCTYPE html>
        <html><head><meta charset="UTF-8"></head>
        <body>%s</body></html>
        '''% u','.join(allName)
    return HttpResponse(response)

定义好函数后,还要在总路由表中配置下

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^student$',views.show_all_students),

httpResponse缺省是UTF-8编码,如果传递unnicode对象会被编码成UTF-8格式,入口的参数是unnicode对象,返回的响应也是unnicode对象,django框架把http请求解码为request对象,处理完后返回的东西被框架编码成http响应的消息,框架解决编解码的问题,我们只需要针对这些对象进行操作


五、url子路由表

1、总路由表用 include 包含子路由表

from django.conf.urls import url,include
from django.contrib import admin
from django.conf.urls.static import static
from dan import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^students/', include('dan.urls')),
2、先在app目录中创建文件 urls.py ,写出子路由表

3、然后修改总路由表文件,包含子路由表文件

子路由表

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^show$',views.show_all_students),
    url(r'^show2$',views.show_all_students2),
]
http://localhost/students/show  students是总路由表,show是子路由表




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值