I have several records in the database which I Want to form URLs like so:
mysite.com/post/todays-post-will-be-about
The todays-post-will-be-about
will be pulled from a Database.
Is there some way I could pull this off in flask?
The url_for() function is used to build a URL to the specific function dynamically. The first argument is the name of the specified function, and then we can pass any number of keyword argument corresponding to the variable part of the URL.
The url_for() function is very useful for dynamically building a URL for a specific function. The function accepts the name of a function as first argument, and one or more keyword arguments, each corresponding to the variable part of URL.
You can put variable names in your views.py functions. For example:
# you can also use a particular data type such as int,str # @app.route('post/<int:id>', methods=['GET', 'POST']) @app.route('post/<variable>', methods=['GET']) def daily_post(variable): #do your code here return render_template("template.html",para1=meter1, para2=meter2)
To get your database information to display on your site, you'll want to pass parameters into the template. So, in your template you'll reference those parameters like:
<td>Post Author: {{ para1.author }}</td> <td>Post Body: {{ para1.body }}</td> <td>Date Posted: [{{ para2 }}] times</td>
Then when you visit mysite.com/post/anything_here, the 'anything_here' will go into your function and be evaluated as necessary. You'll probably also want to set up 404 page handling, in case someone tries to enter a post manually:
@app.errorhandler(404) def not_found_error(error): return render_template('404.html', pic=pic), 404
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With