-
-
Save TheMuellenator/29acd670326c6313bc2b8f7e66fd441f to your computer and use it in GitHub Desktop.
from flask import Flask, render_template | |
app = Flask(__name__) | |
@app.route("/") | |
def home(): | |
return render_template('index.html') | |
@app.route("/login") | |
def login(): | |
return render_template("login.html") | |
if __name__ == '__main__': | |
app.run(debug=True) |
I followed these steps:
1- Open Terminal and type:
pip uninstall Flask Jinja2
pip install Flask Jinja2
2- Update the requirements.txt file:
Flask==2.0.3
Jinja2==3.1.1
itsdangerous==2.0.1
flask
3- Update main.py with the /login route as shown in the solution
4- Update index.html :
..code before...
<p>Are you ready to discover my secret?</p>
<form action="/login" method="get">
<button class="btn btn-primary btn-lg" href=" {{ url_for('login') }} ">Login</button>
</form>
...code after..
5- Close the terminal and click terminate then open it again and write:
set FLASK_APP=main.py
$env:FLASK_APP="main.py"
python -m flask run
then it will run and gives you the link but If you get the link of the previous application so again close the terminal and open it and write:
set FLASK_APP=main.py
$env:FLASK_APP="main.py"
python -m flask run --host 0.0.0.0 --port 5001
For people who see this part in December 2022 and receive error : ImportError: cannot import name 'Markup' from 'jinja2', put below codes inside of requirement.txt. Good luck!.
click==8.0.4
Flask==2.0.3
itsdangerous==2.1.2
Jinja2==3.1.1
MarkupSafe==2.1.1
Werkzeug==2.0.3
Flask==2.2.2
itsdangerous==2.1.2
flask
Copy and paste that into the requirements.txt and you should be prompted to install the plugin in the main.py python file.
so there is a problem with how the login button behave.
aperrantly "button" tags dont accept href, to fix this all you neeed to do is to seperate them, like that:
<a href="{{ url_for('login') }}">
<button class="btn btn-primary btn-lg">Login</button>
</a>
For all your problems for this projects
- for jinja and flask related problems simply do pip uninstall jinja2 flask after that do pip install jinja2 flask that will work just fine but if it dont make sure the requirements file has the latest dependencies
- for the button not working, button tag doesnot have href attribute, it may work if you add onclick listener (it is javaScript code) but buttons are interactive and it is activated when user interacts with them. so when they are activated it performs an action. the actions can be js code (event listeners) or it can be activated using form tag that has action attribute and specifing the type of requests using method
ImportError: cannot import name 'Markup' from 'jinja2'
for me and I cant solve it..
You need to install Flask==2.2.3. To do this first 1) pip install --upgrade -pip, then 2) uninstall current flask and jinja using pip uninstall Flask Jinja2, 3) install them again using pip install Flask Jinja2, finally 4) utilize pip freeze to check the current state of environment packages. At this moment this looks like this to me but it might change in the future depending on the version of the specific package:
click==8.1.3
Flask==1.0.2
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.2
Werkzeug==2.2.3
Of course all this commands have to be executed in Terminal
why the login button is not working?
so there is a problem with how the login button behave. aperrantly "button" tags dont accept href, to fix this all you neeed to do is to seperate them, like that:
<a href="{{ url_for('login') }}"> <button class="btn btn-primary btn-lg">Login</button> </a> `This works thank you
ImportError: cannot import name 'Markup' from 'jinja2' for me and I cant solve it..
Can any one help me, how to resolve this problem
https://stackoverflow.com/questions/71645272/importerror-cannot-import-name-markup-from-jinja2
this might help you
Hi there!
If anyone gets an error while starting the project, just make these changes to requirements.txt
Flask==2.0.3 Jinja2==3.1.1 itsdangerous==2.0.1 flask
Thank you so much it help me out .
so there is a problem with how the login button behave. aperrantly "button" tags dont accept href, to fix this all you neeed to do is to seperate them, like that:
<a href="{{ url_for('login') }}"> <button class="btn btn-primary btn-lg">Login</button> </a> `This works thank you
<button onclick="window.location.href='{{ url_for('login') }}';">Login</button>
This also seems to work.
I received this: from jinja2 import Markup, escape ImportError: cannot import name 'Markup' from 'jinja2'
Tried the methods above but it did not work. What should I do?
Hi,
try this on your terminal: pip install --upgrade flask jinja2
For everyone who suffers from ImportError:
type this code below in your Terminal.
pip install Flask==2.0.3
This worked for me. Good Luck!
app = Flask(__name__)
@app.route("/")
def login():
return render_template("login.html")
app.run()
I still have error on "address already in use and start with a new server port"
For people who see this part in December 2022 and receive error : ImportError: cannot import name 'Markup' from 'jinja2', put below codes inside of requirement.txt. Good luck!.
click==8.0.4 Flask==2.0.3 itsdangerous==2.1.2 Jinja2==3.1.1 MarkupSafe==2.1.1 Werkzeug==2.0.3
Thanks man this works.
You don't need all of that , we just need the main.py and the templates file.
in the
index.html
and for the main.py :
that's what works for me :)