-3

Python と Django は初めてです。速度 (速度 = 距離/時間) の計算に Django を使用してユーザー インターフェイスを作成しようとしています。speed という weapp を作成したという点で、django を使用してプロジェクトを作成しました。以下は私のファイルです

ウェブアプリ

  • 速度

    -テンプレート

    -views.py

    -forms.py

    -urls.py

  • ウェブアプリ

    -settings.py

    -urls.py

    -init.py

    -wsgi.py

私のコード: forms.py

from django import forms

class Calculatespeed(forms.Form):
    distance=forms.CharField(
        required=True,max_length=10,
        widget=forms.TextInput(attrs={"placeholder":"0.0",
                                      "style":"width:100px"}))
    time=forms.CharField(
        required=True,max_length=10,
        widget=forms.TextInput(attrs={"placeholder":"0.0",
                                      "style":"width:100px"}))

ビュー.py

# Create your views here.
from django.shortcuts import render
from django import template
from speed.forms import Calculatespeed

def speed(Speed):
    distance=float(raw_input("Please Give the disance"))
    Time=float(raw_input("Please Give the Time"))
    Speed=distance/Time
    return Speed

def Main(request):
    if request.GET:
        form = speed_form.SpeedForm(request.GET)
        if form.is_valid():
            Distance = form.cleaned_data["distance"]
            Time = form.cleaned_data["time"]

    return shortcuts.render_response(
        "speed.html",
        page_context,
        context_instance=template.RequestContext(request)
    )

テンプレート:

<html>
<head>
<title>WebApp1</title>
</head>
<h1>Speed Calculator</h1>
<form action="/contact/" method="post">
<br>
Distance:
<input type="interger" distance="Distance" />
<br>
Time:
<input type="interger" Time="Time" />
 <input type="submit" value="Submit" />

urls.py

from django.conf.urls import *
from speed.views import speed

urlpatterns = patterns('',
    url(r'^$', speed),
)

問題は、サーバーを実行しようとしているときにエラーが発生することです。速度のユーザーインターフェイスを取得できません。これについて誰か助けてください。

私が提供したテンプレートファイルと他のすべてのファイルは正しいですか??

前もって感謝します

4

2 に答える 2

0

ビューで raw_input を使用して、必要なデータを求めています。あなたはウェブアプリが何であるかを理解していないと思います:-) (または、speed関数はテスト用であるため、その場合tests.pyはアプリケーションの に配置されます)

ビューmain(request)で、フォームを初期化する必要があります。リクエスト POST (で確認できますrequest.method) が送信された場合は、フォームが有効かどうかを確認します。

ここで、機能する可能性のあるコードをいくつか示します(誤用したコンテキストと混同しないようにrender_to_responsebyを置き換えます)render

from django.shortcuts import render


def speed(distance, time_):  # don't like to name a var time because of the module with the same name...     
    return distance/ time_


def compute_speed(request):
    if request.method == 'POST':
        form = Calculatespeed(request.POST)
        if form.is_valid():
             distance = form.cleaned_data["distance"]
             time_ = form.cleaned_data["time"]
             speed = speed(distance, time_)
             # Do your stuff here
    else:
        form = Calculatespeed()


    return render(request, "speed.html", {'form': form})

そしてでurls.py

 urlpatterns = patterns('',
                        url(r'^$', compute_speed, name="compute_speed"),
                       )

HTML にもタイプミスがあります。

  1. 整数入力タイプが存在しません
  2. なぜ action="/contact/" ではなく{% url 'compute_speed' %}?
  3. フォームが閉じられていません
于 2013-08-13T07:20:25.120 に答える