python django url
本帖最后由 只为 于 2017-10-20 11:09 编辑views.py
# coding:utf-8
from django.http import Http404, HttpResponse
def home(request):
print(dir(request))# 查看request的方法有哪些
print(type(request))
# <class 'django.core.handlers.wsgi.WSGIRequest'>
return HttpResponse('Welcome to My Home Page')
def hello(request):
return HttpResponse('<h1>Hello World!</h1>')
import datetime
def hours_ahead(request, offset):
try:
offset = int(offset)
except ValueError:
raise Http404()
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
return HttpResponse(html)
访问报错:
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的端口不是8000?
gopythoner 发表于 2017-10-20 10:44
django的端口不是8000?
启动服务的时候可以指定端口,我启动服务的命令是python manage.py runserver 8080,所以我用8080端口访问的,默认端口不知道是多少,还有我的django是不能指定80端口启动服务的 url(r'^time/plus/(\d{1, 2})/
, hours_ahead),
这个是什么意思,r'’,你只有前引号,没有后引号?
这个报错是说匹配不到你设置的url,一般这种都是正则有问题,反正我看你的url里面全部都没有后引号,不知道是你复制过来有问题还是怎么的,自己好好看看官网教程怎么写的正则,对比你自己写的 gopythoner 发表于 2017-10-20 11:02
url(r'^time/plus/(\d{1, 2})/
, hours_ahead),
我刚看了下,是贴出来的代码有问题,实际我的是 url(r'^time/plus/(\d{1,2})/$', hours_ahead).
我再看看官网的教程,谢谢了 本帖最后由 gopythoner 于 2017-10-20 11:09 编辑
urlpatterns = [
url(r'^,IndexView.as_view(),name='index'),
url(r'^timeline/,TimelineView.as_view(),name='timeline'),
url(r'^article/(?P<article_id>\d+)/,DetailView.as_view(),name='detail'),
url(r'^category/(?P<slug>+)/,CategoryView.as_view(),name='category'),
url(r'^tag/(?P<slug>+)/,TagView.as_view(),name='tag'),
url(r'^search/?, MySearchView.as_view(), name='search_view'),
url(r'^about/,Aboutview,name='about'),
] 妈的,我贴出来的也有问题
你看你的问题是不是在这里,urlpatterns = []
gopythoner 发表于 2017-10-20 11:08
我的django 是1.7.7 的版本的,代码放上去显示有问题,我把url的配置改成文本形式了,您看看还有问题吗 这版本也太低了吧,至少要1.8啊,好像是1.8之后是一个大改动吧
难怪url的设置不同,那我就没法给你看了,我用的1.10的版本
反正你这个报错就是在说你的url匹配不到,问题就是处在了url设置里面 正则的问题吧
\d{0,2}
我用正则比较少 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配置 不是正则问题,{1,2}没有错
看看是你输入的网址后面少了一个/么
反正正则里面是要求/结尾的 gopythoner 发表于 2017-10-20 11:24
不是正则问题,{1,2}没有错
看看是你输入的网址后面少了一个/么
反正正则里面是要求/结尾的
加上/这个也试了,不行 只为 发表于 2017-10-20 11:25
加上/这个也试了,不行
你直接运行127.0.0.1:8080的时候能看到it work 的提示么?
如果这个都不能,那说明你这个项目就没有运行成功 本帖最后由 ooxx7788 于 2017-10-20 11:50 编辑
url(r'^time/plus/(\d{1, 2})/
这一句里面应该是(?P<offset>\d{1, 2}),就把这句改成这样。表示这一段正则是做为offset参数传入views的,否则你这个就少一个参数吧。
url(r'^time/plus/(?P<offset>\d{1, 2})/, hours_ahead),
gopythoner 发表于 2017-10-20 11:28
你直接运行127.0.0.1:8080的时候能看到it work 的提示么?
如果这个都不能,那说明你这个项目就没有运行 ...
可以看到的,/home或者/hello的都可以访问的 ooxx7788 发表于 2017-10-20 11:49
这一句里面应该是(?P\d{1, 2}),就把这句改成这样。表示这一段正则是做为offset参数传入views的,否则 ...
我按你说的加上一个参数还是不行啊,还是404 看来还有很多东西要学习啊!
页:
[1]