任务:如果有一个单词,它是在运行时动态检查的实现
我过去使用过jquery而且从未遇到过PHP的问题,但我是Django的新手:
此代码在名为home.py的页面中导入,它希望将从文本字段中选取的值发送到名为checkkeyword.py的接收页面。但在达到目标之前,我想看看接收页面是否真的响应了,令人困惑的是我得到的是checkkeyword.py中所写内容的全部内容。
也就是说,我在文本字段中输入一个字符,是的,我在它旁边得到一个回复,但是回复是checkkeyword.py中写入的内容的完整内容。的为什么
$( document ).ready(function() {
$('#keyword').keyup(function() {
var keyword = $(this).val();
$('#keyword_status').text('searching ...');
if(keyword!= ''){
$.post(
'/static/js/checkkeyword.py',
{param: keyword},
function (data){
$('#keyword_status').text(data);
});
}
});
});
如果checkkeyword.py
包含" hello",则会返回hello
。如果它包含print("hello")
,则会返回print("hello")
等
出于测试目的,正如您所见,我在jQuery文件所在的同一目录中放置了checkkeyword.py
。
我已经看过一些关于它的帖子,比如写这样的>
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def my_view(request):
print(request)
但是,正如预期的那样,它返回了我所有这四行代码,而不是请求的值。
请:没有关于我的无能或贬低的欺凌评论。我刚刚开始。
谢谢。
答案 0 :(得分:2)
你必须忘记你学到的东西:-)问题是你假设简单地将Python文件放入静态文件夹会自动意味着内部的Python代码被执行(事实并非如此) - 您只是将内容恢复原状,就好像它是图像,文本文件或静态文件夹中的其他内容一样)
你必须
views.py
文件中,可能与settings.py
文件位于同一文件夹中。urls.py
文件中注册视图,可能如下。代码示例:
from .views import my_view
urlpatterns = [
# The following line may already be there:
url(r'^admin/', include(admin.site.urls)),
# This is the new line you're adding:
url(r'^my-view/$', my_view),
]
然后,尝试POST /my-view/
,看看你是否得到任何结果。
此外,我非常强烈建议您先在https://docs.djangoproject.com/en/1.11/处完成本教程。它有望帮助您理解URL,视图以及请求 - 响应处理如何与Django协同工作之间的关系。
祝你好运!关于CSRF:首先禁用CSRF保护可能对您有用,但请在面向公众的服务器上安装应用程序时学习https://docs.djangoproject.com/en/1.11/ref/csrf/并重新启用CSRF。