Sahat Yalkabov
Sahat Yalkabov

Reputation: 33684

How to print textfield's value in Django and Python?

I'm trying to create a very simple web page with 2 textfields, 1 button and 3 labels to make it look like so:

First Name: [..........]   <-- label + textfield

Last Name: [...........]   <-- label + textfield

(Submit) <-- button

{Your full name is %FirstName% + %LastName% } <-- label

As you can see it's an extremely simple task. I could have easily done this in ASP.NET in 5 minutes but I am not very familiar with Django or Python, as I am just starting to learn the framework.

Thanks.

Upvotes: 0

Views: 1218

Answers (2)

spiffyman
spiffyman

Reputation: 624

zomboid's comment is correct. It looks like you need to learn more about Django. You might want to take a look at this chapter from The Django Book. That text is a bit outdated, but the fundamentals are the same.

Some general guidance: you need to point a URL (e.g., /namegrabber) to a view function. Inside that view function, you decide whether the user's doing a GET or a POST. If it's a GET, then instantiate an unbound form -- i.e., a form with no data -- and pass it to a template to be rendered. If it's a POST, then instantiate your form, populating it with request.POST. Then, take the data in your form's cleaned_data attribute and pass that to a template to be rendered.

Two other comments. First, as I mentioned, the text in The Django Book is a bit outdated. In particular, you'll need to somehow deal with Django's CSRF protection since your view will be handling POST requests, assuming you're using Django 1.2+. A nice overview of how to do that is here. Second, when you're building your form, you'll probably want to use forms.CharField for the data you're talking about.

Good luck! This is a five-minute task in Django once you're accustomed to the framework.

Upvotes: 2

Shane Reustle
Shane Reustle

Reputation: 8952

On the python end of it, you can view these values by looking at request.POST["field_name"]. You can then pass these values to the template (different methods depending on which function you are using to call the template). Then the template will look something like

Your full name is {{ first_name }} {{ last_name }}

Let me know if you need more detail / examples.

Upvotes: 1

Related Questions