Bootstrap grid is not working with Flask setup

727 Views Asked by At

EDIT:

I was using the wrong version of bootstrap. Using the CDN links for bootstrap 5.0 solved the issue. Thanks SO!

I am new to Flask/bootstrap and I tried the following example but the rendered page gave me stacked results (see second screenshot) instead of the one shown in the bootstrap website (https://getbootstrap.com/docs/4.0/layout/grid/)

enter image description here

To demonstrate, here is a screenshot of my current results: enter image description here

The following code snippets are my Flask setup. I checked developer mode in the browser and the sources are loaded so I am not sure what the problem is here (bootstrap files are included via CDN links).

I also tried installing flask-bootstrap using pip then importing them in app.py did not help either.

app.py

from flask import Flask, render_template

app = Flask(__name__)


@app.route("/")
def ooo():
    return render_template("ooo.html")

ooo.html

{% extends "layout.html" %}
{% block content %}

<!-- Copied from bootstrap website -->
<div class="container">
    <div class="row">
        <div class="col">
            1 of 3
        </div>
        <div class="col-6">
            2 of 3 (wider)
        </div>
        <div class="col">
            3 of 3
        </div>
    </div>
    <div class="row">
        <div class="col">
            1 of 3
        </div>
        <div class="col-5">
            2 of 3 (wider)
        </div>
        <div class="col">
            3 of 3
        </div>
    </div>
</div>

{% endblock content %}

{% block script %}
    
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" 
    integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" 
    crossorigin="anonymous"></script>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" 
    integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" 
    crossorigin="anonymous"></script>
    
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" 
    integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" 
    crossorigin="anonymous"></script>    

{% endblock script %}

layout.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>R10K OoO</title>
    
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" 
    integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" 
    crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" 
    integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" 
    crossorigin="anonymous">

</head>
<body>
    {% block content %}{% endblock %}

    {% block script %}{% endblock %}
</body>
</html>

Thanks in advance!

0

There are 0 best solutions below