Is that screenshot from a review for The Lego Movie? Can you show the
log output when you generate that page?

On Wed, Jul 3, 2019 at 3:16 PM Cravan <cravan...@gmail.com> wrote:
>
> This is because I have a movie function that throws up any reviews; here it 
> is:
> ````
> @app.route("/movies/<movie>")
> def movie(movie):
>     lol = movie.split(',')
>     movie_title = lol[0]
>     res = requests.get("http://www.omdbapi.com/";, params={"apikey": 
> "c2c76d64", "t": movie_title, "plot": "full"})
>     omdb_data = res.json()
>     ratings_list = omdb_data['Ratings']
>     check_for_review_statement = sqlalchemy.text('SELECT * FROM reviews WHERE 
> movie = :movie')
>     check_for_review = engine.execute(check_for_review_statement, 
> movie=movie_title).fetchall()
>     if res.status_code == 200:
>         if len(check_for_review) != 0:
>             check_for_review_splitted = str(check_for_review).split(',')
>             return render_template("movie_individual.html", movie=lol, 
> check_for_review=check_for_review_splitted, omdb_data=omdb_data, 
> ratings_list=ratings_list)
>         else:
>             return render_template("movie_no_review.html", movie=lol, 
> omdb_data=omdb_data, ratings_list=ratings_list)
>     else:
>         if len(check_for_review) != 0:
>             check_for_review_splitted = str(check_for_review).split(',')
>             return render_template("movie_noomdbdata.html", movie=lol, 
> check_for_review=check_for_review_splitted)
>         else:
>             return render_template("movie_gotnothing.html", movie=lol, 
> res=res.json())
> ````
> And it prints out the review.Here's a pic attached to this email.
> Cravan
>
>
> On 3/7/19, 10:13 PM, "Simon King" <sqlalchemy@googlegroups.com on behalf of 
> si...@simonking.org.uk> wrote:
>
>     On Wed, Jul 3, 2019 at 11:54 AM Cravan <cravan...@gmail.com> wrote:
>     >
>     > Hi Simon,
>     >         I always turn on debug mode using export FLASK_DEBUG=1 in the 
> shell, but no error pops out, so I have no idea whether that is similar.  I 
> tried echo="debug", but didn’t really understand the results, so I am 
> confused as to how to edit my code. I have used both edits as suggested, and 
> this is what was produced:
>     > ````
>     > 2019-07-03 18:49:43,100 INFO sqlalchemy.engine.base.Engine select 
> version()
>     > 2019-07-03 18:49:43,100 INFO sqlalchemy.engine.base.Engine {}
>     > 2019-07-03 18:49:43,764 DEBUG sqlalchemy.engine.base.Engine Col 
> ('version',)
>     > 2019-07-03 18:49:43,764 DEBUG sqlalchemy.engine.base.Engine Row 
> ('PostgreSQL 11.4 (Ubuntu 11.4-1.pgdg16.04+1
>     > ) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 
> 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, 64-bit',)
>     > 2019-07-03 18:49:43,765 INFO sqlalchemy.engine.base.Engine select 
> current_schema()
>     > 2019-07-03 18:49:43,765 INFO sqlalchemy.engine.base.Engine {}
>     > 2019-07-03 18:49:44,109 DEBUG sqlalchemy.engine.base.Engine Col 
> ('current_schema',)
>     > 2019-07-03 18:49:44,110 DEBUG sqlalchemy.engine.base.Engine Row 
> ('public',)
>     > 2019-07-03 18:49:44,534 INFO sqlalchemy.engine.base.Engine SELECT 
> CAST('test plain returns' AS VARCHAR(60))
>     > AS anon_1
>     > 2019-07-03 18:49:44,534 INFO sqlalchemy.engine.base.Engine {}
>     > 2019-07-03 18:49:44,947 INFO sqlalchemy.engine.base.Engine SELECT 
> CAST('test unicode returns' AS VARCHAR(60)
>     > ) AS anon_1
>     > 2019-07-03 18:49:44,947 INFO sqlalchemy.engine.base.Engine {}
>     > 2019-07-03 18:49:45,353 INFO sqlalchemy.engine.base.Engine show 
> standard_conforming_strings
>     > 2019-07-03 18:49:45,353 INFO sqlalchemy.engine.base.Engine {}
>     > 2019-07-03 18:49:45,762 DEBUG sqlalchemy.engine.base.Engine Col 
> ('standard_conforming_strings',)
>     > 2019-07-03 18:49:45,762 DEBUG sqlalchemy.engine.base.Engine Row ('on',)
>
>     Everything above this point is routine stuff that SQLAlchemy does to
>     figure out what verison of Postgresql it's talking to and what options
>     it is running with. You can safely ignore it.
>
>     The next line is the first query that you've run:
>     > 2019-07-03 18:49:46,173 INFO sqlalchemy.engine.base.Engine SELECT 
> title, year, "imdbRating" FROM movies WHER
>     > E "imdbID" = %(imdb_id)s
>
>     These are the parameters that you passed to the query (in this case,
>     just the imdb_id):
>     > 2019-07-03 18:49:46,173 INFO sqlalchemy.engine.base.Engine {'imdb_id': 
> 'tt1490017'}
>
>     The "Col" line tells you the names of the columns in the result set:
>     > 2019-07-03 18:49:46,991 DEBUG sqlalchemy.engine.base.Engine Col 
> ('title', 'year', 'imdbRating')
>
>     ...and then you will normally see a "Row" line for each row in the
>     result. In this case your query returned a single row. The elements of
>     the row tuple correspond to the columns from the Col line.
>     > 2019-07-03 18:49:46,991 DEBUG sqlalchemy.engine.base.Engine Row ('The 
> Lego Movie', 2014, Decimal('7.8'))
>
>     I assume this is from your "print(check_for_api)" statement:
>     > ('The Lego Movie', 2014, Decimal('7.8'))
>
>     Here's your next query:
>     > 2019-07-03 18:49:47,862 INFO sqlalchemy.engine.base.Engine SELECT * 
> FROM reviews WHERE movie = %(movie_title
>     > )s
>
>     ...and the parameters for that query:
>     > 2019-07-03 18:49:47,863 INFO sqlalchemy.engine.base.Engine 
> {'movie_title': 'The Lego Movie'}
>
>     The column names in the result set:
>     > 2019-07-03 18:49:48,699 DEBUG sqlalchemy.engine.base.Engine Col 
> ('movie', 'rating', 'username', 'review')
>
>     ...but then there are no Row lines, so the query didn't return any
>     rows. In other words, there are no rows in the "reviews" table where
>     the "movie" column equals "The Lego Movie".
>
>     You said that you've confirmed that you've entered the review. How
>     have you confirmed that?
>
>     Simon
>
>
>     > []
>     > {"title": "The Lego Movie", "year": 2014, "imdb_id": "tt1490017", 
> "director": "Phil Lord, Christopher Miller
>     > ", "actors": "Will Arnett, Elizabeth Banks, Craig Berry, Alison Brie", 
> "imdb_rating": 7.8, "review_count": 0
>     > , "average_score": "N.A"}
>     > 127.0.0.1 - - [03/Jul/2019 18:49:49] "GET /api/tt1490017 HTTP/1.1" 200 -
>     > ````
>     > Also, I used three print statements,
>     > ````
>     >         print(check_for_api)
>     >         ......#some code(same as before)
>     >         print(check_for_reviews_unsplitted)
>     >         ......#some code again(same as before)
>     >         print (apijson)
>     > ````
>     > Thanks,
>     > Cravan
>     >
>     >
>     > On 3/7/19, 12:07 AM, "Simon King" <sqlalchemy@googlegroups.com on 
> behalf of si...@simonking.org.uk> wrote:
>     >
>     >     You might want to try turning on debug logging for your SQL 
> statements
>     >     by passing echo="debug" when creating your engine:
>     >
>     >       
> https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine
>     >
>     >     Amongst other things, this will show the values of parameters that 
> you
>     >     are passing to the database.
>     >
>     >     I'm not sure what your problem is, but I notice that you are using
>     >     "SELECT * FROM movies" to load your rows, and then you are assuming
>     >     that the columns you get back are in a certain order. (You assume 
> that
>     >     the first column is title, the second is year, and the fifth is
>     >     imdbrating). It's possible that the columns are coming back in a
>     >     different order, and so the value you think is the title is actually
>     >     something else.
>     >
>     >     It would be better to explicitly list the columns you want, 
> something like:
>     >
>     >         SELECT title, year, imdbrating
>     >         FROM movies
>     >         WHERE "imdbID" = :imdb_id
>     >
>     >     Alternatively, the rows that you get back from fetchall() actually
>     >     know which columns they came from, so you could do this:
>     >
>     >         # don't call list() here:
>     >         check_for_api = check_for_api_unsplitted[0]
>     >
>     >         # use dictionary-style access to get the individual values
>     >         title = check_for_api["title"]
>     >
>     >     Simon
>     >
>     >     On Tue, Jul 2, 2019 at 3:33 PM Cravan <cravan...@gmail.com> wrote:
>     >     >
>     >     > Hi all,
>     >     >
>     >     >                 One of the other tasks for my movie review 
> assignment is that I have to create api access to my website, which should 
> return a json response including a review count. However, I have confirmed 
> that I have entered a review for a specific movie and it prompts out in my 
> html, but apparently when I try to print out the json I get 0 reviews for my 
> review count. Can someone help me troubleshoot? Sorry if it sounds unclear.
>     >     >
>     >     > ````
>     >     >
>     >     > @app.route("/api/<imdb_id>")
>     >     >
>     >     > def api(imdb_id):
>     >     >
>     >     >     check_for_api_statement = sqlalchemy.text('SELECT * FROM 
> movies WHERE "imdbID" = :imdb_id')
>     >     >
>     >     >     check_for_api_unsplitted = 
> engine.execute(check_for_api_statement, imdb_id=imdb_id).fetchall()
>     >     >
>     >     >     res = requests.get("http://www.omdbapi.com/";, 
> params={"apikey": "c2c76d64", "i": imdb_id, "plot": "full"})
>     >     >
>     >     >     omdb_data = res.json()
>     >     >
>     >     >     check_for_api = list(check_for_api_unsplitted[0])
>     >     >
>     >     >     title_unsplitted = check_for_api[0]
>     >     >
>     >     >     title = check_for_api[0]
>     >     >
>     >     >     year = check_for_api[1]
>     >     >
>     >     >     imdb_id = imdb_id
>     >     >
>     >     >     imdbrating = check_for_api[4]
>     >     >
>     >     >     director = omdb_data['Director']
>     >     >
>     >     >     actors = omdb_data['Actors']
>     >     >
>     >     >     check_for_reviews_statement = sqlalchemy.text('SELECT * FROM 
> reviews WHERE movie = :movie_title')
>     >     >
>     >     >     check_for_reviews_unsplitted = 
> engine.execute(check_for_reviews_statement, movie_title=title).fetchall()
>     >     >
>     >     >     review_count = len(check_for_reviews_unsplitted)
>     >     >
>     >     >     print(check_for_reviews_unsplitted)    #this returns a blank 
> list for some strange reason
>     >     >
>     >     >     if len(check_for_reviews_unsplitted) != 0:
>     >     >
>     >     >         check_for_reviews = 
> check_for_reviews_unsplitted.split(',')
>     >     >
>     >     >         score = float(check_for_reviews[4])
>     >     >
>     >     >         average_score = score/review_count
>     >     >
>     >     >     else:
>     >     >
>     >     >         average_score = "N.A"
>     >     >
>     >     > a =
>     >     >
>     >     > 
> {"title":title,"year":year,"imdb_id":imdb_id,"director":director,"actors":actors,"imdb_rating":imdbrating,"review_count":review_count,"average_score":average_score}
>     >     >
>     >     >     apijson = json.dumps(a, cls=CustomJsonEncoder)
>     >     >
>     >     >     print (apijson)
>     >     >
>     >     >     if len(check_for_api) != 0:
>     >     >
>     >     >         return render_template("api.html", apijson=apijson)
>     >     >
>     >     >     else:
>     >     >
>     >     >         return render_template("error2.html", message="No such 
> movie.")
>     >     >
>     >     > --
>     >     > SQLAlchemy -
>     >     > The Python SQL Toolkit and Object Relational Mapper
>     >     >
>     >     > http://www.sqlalchemy.org/
>     >     >
>     >     > To post example code, please provide an MCVE: Minimal, Complete, 
> and Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
> description.
>     >     > ---
>     >     > You received this message because you are subscribed to the 
> Google Groups "sqlalchemy" group.
>     >     > To unsubscribe from this group and stop receiving emails from it, 
> send an email to sqlalchemy+unsubscr...@googlegroups.com.
>     >     > To post to this group, send email to sqlalchemy@googlegroups.com.
>     >     > Visit this group at https://groups.google.com/group/sqlalchemy.
>     >     > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/7DB000C8-1EBC-48AF-A24F-202196C743CF%40gmail.com.
>     >     > For more options, visit https://groups.google.com/d/optout.
>     >
>     >     --
>     >     SQLAlchemy -
>     >     The Python SQL Toolkit and Object Relational Mapper
>     >
>     >     http://www.sqlalchemy.org/
>     >
>     >     To post example code, please provide an MCVE: Minimal, Complete, 
> and Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
> description.
>     >     ---
>     >     You received this message because you are subscribed to the Google 
> Groups "sqlalchemy" group.
>     >     To unsubscribe from this group and stop receiving emails from it, 
> send an email to sqlalchemy+unsubscr...@googlegroups.com.
>     >     To post to this group, send email to sqlalchemy@googlegroups.com.
>     >     Visit this group at https://groups.google.com/group/sqlalchemy.
>     >     To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/CAFHwexfVMZTVX6hKDvxgRFG0Wrc%3DhSfwU05XQGm%2B7gsRTtR_Cw%40mail.gmail.com.
>     >     For more options, visit https://groups.google.com/d/optout.
>     >
>     >
>     >
>     > --
>     > SQLAlchemy -
>     > The Python SQL Toolkit and Object Relational Mapper
>     >
>     > http://www.sqlalchemy.org/
>     >
>     > To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
> description.
>     > ---
>     > You received this message because you are subscribed to the Google 
> Groups "sqlalchemy" group.
>     > To unsubscribe from this group and stop receiving emails from it, send 
> an email to sqlalchemy+unsubscr...@googlegroups.com.
>     > To post to this group, send email to sqlalchemy@googlegroups.com.
>     > Visit this group at https://groups.google.com/group/sqlalchemy.
>     > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/FD18A0DF-70BD-4867-BA8C-A90DD76E24A3%40gmail.com.
>     > For more options, visit https://groups.google.com/d/optout.
>
>     --
>     SQLAlchemy -
>     The Python SQL Toolkit and Object Relational Mapper
>
>     http://www.sqlalchemy.org/
>
>     To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
> description.
>     ---
>     You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
>     To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+unsubscr...@googlegroups.com.
>     To post to this group, send email to sqlalchemy@googlegroups.com.
>     Visit this group at https://groups.google.com/group/sqlalchemy.
>     To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/CAFHwexc6%2BT%2BzNK%3DR2WPefSgGVkYnC8CyjGkF_ydN3HEFp_ggmg%40mail.gmail.com.
>     For more options, visit https://groups.google.com/d/optout.
>
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
> description.
> ---
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at https://groups.google.com/group/sqlalchemy.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/B6DBDE22-5A75-4DE6-B69C-346E5E597F9E%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/CAFHwexcoCcw1ggw3jcEiVomApD19BaLVKcVsNLU8DSOFa0%2BEzA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to