0

I'm pretty new to Python, and for practice I decided to create a little program to help my dad update his website (he owns a small movie theater) to show what movies are playing.

I basically made a bunch of text boxes to enter the movie's title, cast, times playing, etc. When you're done, hit "Submit" and it spits out a new index.html page to upload to the server.

The problem is, I'm using {0}, {1}, {2} etc. to insert the new information from the textboxes into the HTML code (which is a string in my program), and Python keeps getting confused because the HTML code has some Javascript with curly braces in it.

Here's the code:

    def submit(self):
        self.createHTML(('''<lots of html>{some javascript stuff}{0}{1}{2}{3}{4}{5}{6}{7}
'''.format((self.text_title.get(1.0,'end')),
           (self.text_date2d.get(1.0,'end')),
           (self.text_date3d.get(1.0,'end')),
           (self.text_cast.get(1.0,'end')),
           (self.text_summary.get(1.0,'end')),
           (self.text_runtime.get(1.0,'end')),
           (self.text_trailer.get(1.0,'end')),
           (self.text_image.get(1.0,'end'))))) 

I replaced the HTML with <lots of html>{some javascript stuff} to make it simpler here on stack (and to help get to the root of the problem).

When I have the actual site's HTML code in my program, it says "ValueError: unexpected '{' in field name" and points to the end of the function (self.text_image.get(1.0,'end'))))). When I use the simplified version above, I get "KeyError: 'some javascript stuff'", and it also points to the end of the function.

I think it might work if I can tell Python to ignore all the JavaScript curly braces, but using escape characters isn't working.

Hopefully this made sense. Can anyone help?

1 Answer 1

1

It looks like you need to escape your curly braces in the JavaScript portion. You can do by using the double curly braces {{ }} instead of single curly braces in your JavaScript.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.