如何在JS上运行python脚本(按钮onclick)

时间:2018-06-25 23:28:41

标签: javascript html django

如何在js中运行django脚本。 我需要在onclick方法上使用IMDb API来获取正在搜索的电影用户的ID。

我该怎么办?

我在django仍是乞gg,所以不要评判我:)

这是该部分的html:

 <div class="form-inline mt-2 mt-md-0">
    <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search" id="search_movie_textField">
    <button class="btn btn-outline-success my-2 my-sm-0" onclick="search_movie()" >Search</button>
  </div>

这是我要写的我的JS:

function search_movie(){
var sreach = document.getElementById("search_movie_textField").value;

id = //GET IMDB ID FROM SEARCH

window.location.href = '/movielist/movies/' + id; }

2 个答案:

答案 0 :(得分:0)

尝试一下:

function search_movie() {
    var search = document.getElementById("search_movie_textField").value;
    window.location.href = '/movielist/movies/' + search;
}

Codepen:https://codepen.io/anon/pen/bKxGbg

答案 1 :(得分:0)

您应该为此使用ajax。如果您的目录结构是这样的,则可以执行以下操作。

your_django_app/
    __init__.py
    models.py
    urls.py
    views.py
    templates/
        your_django_app/
            search.html
    ....

在您的urls.py中添加一个用于搜索功能的网址

from django.urls import path
from . import views

app_name = "your_app_name"

urlpatterns = [
    .....
    path('search', views.search, name='search'),
    .....
]

然后在views.py中编写将搜索电影ID的函数。

from django.http import JsonResponse

def search(request):
    search_keyword = request.POST["search"]
    ......
    id = get_movie_id(search) # Your function to obtain the movie ID
    ......
    return JsonResponse({"id": id})

最后search.html应该是这样的:

<div class="form-inline mt-2 mt-md-0">
    <form id="search-form">
        {% csrf_token %}
        <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search" id="search_movie_textField" name="search">
        <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
</div>

<script>
$("#search-form").on("submit",function(e){
    e.preventDefault();
    $.ajax({
        url : '{% url "your_django_app:search" %}',
        type: "POST",
        data: $(this).serialize(),
        success: function (data) {
            window.location.href = '/movielist/movies/' + data.id;
        },
        error: function (jXHR, textStatus, errorThrown) {
          alert(errorThrown);
        }
    });
});
</script>

注意:不要忘记添加jQuery