2013-08-13 2 views
-3

Я новичок в Python и Django, я пытаюсь создать пользовательский интерфейс, используя django для вычисления скорости (скорость = расстояние/время). Я создал проект, используя django, в котором я создал скорость, называемую скорость. Ниже приведены мои файлыПользовательский интерфейс в python django

Webapp

  • speed

    -Templates

    -views.py

    -forms.py

    -urls.py

  • webapp

    -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"})) 

views.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), 
) 

Проблема в том, когда я пытаюсь запустить сервер. Я получаю сообщение об ошибке. Я не могу получить пользовательский интерфейс скорости, может ли кто-нибудь помочь мне в этом.

Являются ли файлы шаблонов и все другие файлы, которые я дал, являются правильными или нет?

Заранее спасибо

+0

Где вы планируете хранить свои данные? У вас есть какая-либо модель данных? – matcheek

+1

показать часть вашей модели данных, и что сообщение об ошибке – drabo2005

+0

Ошибка? Какое сообщение об ошибке? – iMom0

ответ

0

Вы с помощью raw_input на ваш взгляд, чтобы задать данные хотел. Я думаю, вы не поняли, что веб-приложение :-) (Или функция speed только для тестов, так что в этом случае оно будет помещено в tests.py приложения)

На ваш взгляд main(request), вы должен инициировать форму и если отправляется запрос POST (может быть проверен с помощью request.method), проверьте, действительна ли форма.

Вот некоторые код, который может работать (я заменить render_to_response на 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. Inte r Тип ввода ger не существует
  2. Зачем действовать = "/ contact /" вместо {% url 'compute_speed' %}?
  3. Вашей форма не закрыта
+0

Привет, я попробовал запрос, заданный он показывает ошибку, указывающую как Ошибка атрибута: У объекта str нет атрибута «META», что здесь не так – user2238656

+0

Я забыл первый параметр функции рендеринга, который является запросом. Я обновил свой код –

0

Есть много вещей неправильно с вашим кодом, так что мне кажется, как очень простым непонимание работы с Джанго, и, возможно, с питоном в целом. в вашем коде много ошибок pythonic (у вас неправильный отступ, вы сделали «возврат» без функции и т. д.) и много ошибок django-ic тоже (вы не можете использовать raw_input в django it не работает таким образом, вы создали форму, но затем сами написали весь html).

Я предлагаю, чтобы перед тем, как написать его в django, напишите это как программу python и посмотрите, работает ли он.Когда вы чувствуете, что понимаете язык достаточно и хотите использовать веб-приложение своей программы, перейдите к документам django и найдите время до learn how it works.

Смежные вопросы