鱼C论坛

 找回密码
 立即注册
查看: 2619|回复: 17

python django url

[复制链接]
发表于 2017-10-20 09:44:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 只为 于 2017-10-20 11:09 编辑

views.py

  1. # coding:utf-8
  2. from django.http import Http404, HttpResponse


  3. def home(request):
  4.     print(dir(request))  # 查看request的方法有哪些
  5.     print(type(request))
  6.     # <class 'django.core.handlers.wsgi.WSGIRequest'>
  7.     return HttpResponse('Welcome to My Home Page')


  8. def hello(request):
  9.     return HttpResponse('<h1>Hello World!</h1>')

  10. import datetime
  11. def hours_ahead(request, offset):
  12.     try:
  13.         offset = int(offset)
  14.     except ValueError:
  15.         raise Http404()
  16.     dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
  17.     html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
  18.     return HttpResponse(html)
复制代码


访问报错:

django error 404

django error 404


url.py 文件:

from django.conf.urls import patterns, include, url
from django.contrib import admin
from views import hello, hours_ahead

urlpatterns = patterns('',

    url(r'^hello$', hello),
    url(r'^time/plus/(\d{1, 2})/$', hours_ahead),
    url(r'^$', 'd11.views.home', name='home'),
    url(r'^admin/', include(admin.site.urls)),
)

本帖被以下淘专辑推荐:

  • · django|主题: 61, 订阅: 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-20 10:44:37 | 显示全部楼层
django的端口不是8000?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-20 10:54:55 | 显示全部楼层
gopythoner 发表于 2017-10-20 10:44
django的端口不是8000?

启动服务的时候可以指定端口,我启动服务的命令是
  1. python manage.py runserver 8080
复制代码
,所以我用8080端口访问的,默认端口不知道是多少,还有我的django是不能指定80端口启动服务的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 11:02:54 | 显示全部楼层
url(r'^time/plus/(\d{1, 2})/
, hours_ahead),

这个是什么意思,r'’,你只有前引号,没有后引号?

这个报错是说匹配不到你设置的url,一般这种都是正则有问题,反正我看你的url里面全部都没有后引号,不知道是你复制过来有问题还是怎么的,自己好好看看官网教程怎么写的正则,对比你自己写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-20 11:07:59 | 显示全部楼层
gopythoner 发表于 2017-10-20 11:02
url(r'^time/plus/(\d{1, 2})/
, hours_ahead),

我刚看了下,是贴出来的代码有问题,实际我的是 url(r'^time/plus/(\d{1,2})/$', hours_ahead).
我再看看官网的教程,谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 11:08:42 | 显示全部楼层
本帖最后由 gopythoner 于 2017-10-20 11:09 编辑
  1. urlpatterns = [
  2.     url(r'^,IndexView.as_view(),name='index'),
  3.     url(r'^timeline/,TimelineView.as_view(),name='timeline'),
  4.     url(r'^article/(?P<article_id>\d+)/,DetailView.as_view(),name='detail'),
  5.     url(r'^category/(?P<slug>[a-zA-Z0-9_\-\u4e00-\u9fa5]+)/,CategoryView.as_view(),name='category'),
  6.     url(r'^tag/(?P<slug>[a-zA-Z0-9_\-\u4e00-\u9fa5]+)/,TagView.as_view(),name='tag'),
  7.     url(r'^search/?, MySearchView.as_view(), name='search_view'),
  8.     url(r'^about/,Aboutview,name='about'),
  9. ]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 11:12:03 | 显示全部楼层
妈的,我贴出来的也有问题

你看你的问题是不是在这里,urlpatterns = []


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-20 11:12:53 | 显示全部楼层

我的django 是1.7.7 的版本的,代码放上去显示有问题,我把url的配置改成文本形式了,您看看还有问题吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 11:15:59 | 显示全部楼层
这版本也太低了吧,至少要1.8啊,好像是1.8之后是一个大改动吧
难怪url的设置不同,那我就没法给你看了,我用的1.10的版本
反正你这个报错就是在说你的url匹配不到,问题就是处在了url设置里面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 11:20:19 | 显示全部楼层
正则的问题吧
\d{0,2}
我用正则比较少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-20 11:21:04 | 显示全部楼层
gopythoner 发表于 2017-10-20 11:12
妈的,我贴出来的也有问题

你看你的问题是不是在这里,urlpatterns = []

urlpatterns = patterns('',

    url(r'^hello$', hello),
    url(r'^time/plus/(\d{1, 2})/$', hours_ahead),
    url(r'^$', 'd11.views.home', name='home'),
    url(r'^admin/', include(admin.site.urls)),
)

这是我的url配置
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 11:24:42 | 显示全部楼层
不是正则问题,{1,2}没有错
看看是你输入的网址后面少了一个/么
反正正则里面是要求/结尾的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-20 11:25:59 | 显示全部楼层
gopythoner 发表于 2017-10-20 11:24
不是正则问题,{1,2}没有错
看看是你输入的网址后面少了一个/么
反正正则里面是要求/结尾的

加上/这个也试了,不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 11:28:43 | 显示全部楼层
只为 发表于 2017-10-20 11:25
加上/这个也试了,不行

你直接运行127.0.0.1:8080的时候能看到it work 的提示么?
如果这个都不能,那说明你这个项目就没有运行成功
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 11:49:24 | 显示全部楼层
本帖最后由 ooxx7788 于 2017-10-20 11:50 编辑
  1. url(r'^time/plus/(\d{1, 2})/
复制代码


这一句里面应该是(?P<offset>\d{1, 2}),就把这句改成这样。表示这一段正则是做为offset参数传入views的,否则你这个就少一个参数吧。
  1. url(r'^time/plus/(?P<offset>\d{1, 2})/, hours_ahead),
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-20 12:19:18 | 显示全部楼层
gopythoner 发表于 2017-10-20 11:28
你直接运行127.0.0.1:8080的时候能看到it work 的提示么?
如果这个都不能,那说明你这个项目就没有运行 ...

可以看到的,/home或者/hello的都可以访问的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-20 13:51:55 | 显示全部楼层
ooxx7788 发表于 2017-10-20 11:49
这一句里面应该是(?P\d{1, 2}),就把这句改成这样。表示这一段正则是做为offset参数传入views的,否则 ...

我按你说的加上一个参数还是不行啊,还是404
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-15 07:33:53 | 显示全部楼层
看来还有很多东西要学习啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 03:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表