请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请老师们帮助看下路由设计问题(更新问题)

在留言板课程中,我自己新添加了一个视图。
路径messsageform/messageapp/views.py

def addmessage(request):
    if request.method == 'POST':
        name = request.POST.get('name', '')
        ...#中间省略
        message.save()
        return render(request, 'messageapp/index.html')
    elif request.method == 'GET':
        allmessage = Message.objects.all()
        if allmessage:
            message = allmessage[0]
            context = {'message': message}
            return render(request, 'messageapp/index.html', context)
        else:
            return render(request, 'messageapp/index.html')
            

在路径messsageform/messageapp/urls.py

from . import views
from django.urls import path
urlpatterns = [
    path('', views.index, name='index'),
    path('addmessage/', views.addmessage, name='addmessage'),
]

然后在html中添加

<body>
<form action="addmessage/" method="post" class="smart-green">
    <h1>留言信息
        <span>请留下你的信息.</span>

现在通过
http://127.0.0.1:8000/messageapp/addmessage/
使用get方法,是可以获得第一条数据的
通过get方法可以获得第一条数据,刷新也没有问题
接下来,我填写数据。
图片描述
就发现这个网址出现了两个addmessage。导致路由有问题。
想了很久没有发现问题在哪里,请老师帮助,谢谢

按照老师的提示在html中

<form action="/addmessage/" method="post" class="smart-green">

增加/,点击提交之后
直接跳转到http://127.0.0.1:8000/addmessage
显示
图片描述
这里又提示我没有配置路由。
可是我在messsageform/messageapp/urls.py

from . import views
from django.urls import path
urlpatterns = [
    path('', views.index, name='index'),
    path('addmessage/', views.addmessage, name='addmessage'),
]

确实是配置过路由的。

正在回答

3回答

bobby 2019-07-31 17:57:02

https://img1.sycdn.imooc.com//szimg/5d4165d00913080411230643.jpg 这个地方前面再加上一个斜线,如果不加斜线的话会自动在你地址栏当前的url后面添加就成了两个addmessage了

1 回复 有任何疑惑可以回复我~
  • 提问者 慕数据8021029 #1
    bobby老师,我按照你的提示增加了/增加/,点击提交之后
    直接跳转到http://127.0.0.1:8000/addmessage
    但是提示路由错误。
    Page not found (404)
    Request Method:	POST
    Request URL:	http://127.0.0.1:8000/addmessage
    Using the URLconf defined in messageform.urls, Django tried these URL patterns, in this order:
    
    messageapp/
    admin/
    The current path, addmessage, didn't match any of these.
    
    麻烦老师再帮助看看
    回复 有任何疑惑可以回复我~ 2019-07-31 23:37:11
bobby 2019-08-01 14:49:02

https://img1.sycdn.imooc.com/szimg/5d428b4509331aa911270393.jpg 你这里的url中配置的是messageapp/ 你改成和你的url中配置的保持一致试试

1 回复 有任何疑惑可以回复我~
提问者 慕数据8021029 2019-07-31 23:38:20

bobby我修改了/,出现了新的问题,说是路由配置错误,麻烦老师再看看,我已经更新了上面的问题

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信