database query is working

develop
gwen 2 years ago
parent 1e82636d9f
commit f40127b264

@ -3,7 +3,7 @@ import os
from flask import Flask from flask import Flask
from flask import render_template from flask import render_template
import werkzeug #import werkzeug
from .routes import main from .routes import main
@ -21,12 +21,12 @@ app = Flask(
@app.errorhandler(404) @app.errorhandler(404)
def page_not_found(e: werkzeug.exceptions.HTTPException) -> t.Tuple[t.Text, int]: def page_not_found(e):
return render_template("404.html", title="Page non trouvée"), 404 return render_template("404.html", title="Page non trouvée"), 404
@app.errorhandler(500) @app.errorhandler(500)
def internal_server_error(e: werkzeug.exceptions.HTTPException) -> t.Tuple[t.Text, int]: def internal_server_error(e):
return render_template("500.html", title="Erreur interne du serveur"), 500 return render_template("500.html", title="Erreur interne du serveur"), 500
app.register_blueprint(main) app.register_blueprint(main)

@ -4,6 +4,41 @@ from flask import Blueprint, abort, render_template, request, send_from_director
main = Blueprint("main", __name__, url_prefix="/") main = Blueprint("main", __name__, url_prefix="/")
from pymongo import MongoClient
import urllib.parse
username = urllib.parse.quote_plus('dbadmin')
password = urllib.parse.quote_plus('BrOp48la%Mrops')
myclient = MongoClient('mongodb://%s:%s@149.202.41.75:27017' % (username, password))
mydb = myclient["actesdb"]
dbhouse = mydb["house"]
# (unproudly borrowed from the flask-pymongo's helpers :)
from flask import abort
def find_one_or_404(self, *args, **kwargs):
"""Find a single document or raise a 404.
This is like :meth:`~pymongo.collection.Collection.find_one`, but
rather than returning ``None``, cause a 404 Not Found HTTP status
on the request.
.. code-block:: python
@app.route("/user/<username>")
def user_profile(username):
user = mongo.db.users.find_one_or_404({"_id": username})
return render_template("user.html",
user=user)
"""
found = self.find_one(*args, **kwargs)
if found is None:
abort(404)
return found
@main.route("/") @main.route("/")
def home(): def home():
"""home route""" """home route"""
@ -12,17 +47,19 @@ def home():
@main.route("/about/") @main.route("/about/")
def about(): def about():
"""home route""" """about route"""
return render_template("about.html") return render_template("about.html")
@main.route("/actes/") @main.route("/actes/")
def corpora_all(): def corpora_all():
"""copora all route""" """copora all
# FIXME rendre ce template dynamique, if faut récuperer les maisons depuis la base
# FIXME récupérer les maisons depuis la base lists houses
# house_label = ["Bourbon", "Berry", "Anjou"] sample_house_names = ["Bourbon", "Berry", "Anjou", ...]
return render_template("corpora_all.html") """
houses = list(dbhouse.find())
return render_template("corpora_all.html", houses=houses)
@main.route("/actes/<house>") # dont put a slash at the end @main.route("/actes/<house>") # dont put a slash at the end

@ -4,9 +4,9 @@
<h1>Corpus</h1> <h1>Corpus</h1>
<p>Corpus disponibles :</p> <p>Corpus disponibles :</p>
<ul> <ul>
<li><a href="{{url_for('main.actes', house='Bourbon')}}">Actes des ducs et duchesses de Bourbon</a></li> {% for house in houses %}
<li><a href="{{url_for('main.actes', house='Berry')}}">Actes des ducs et duchesses de Berry</a></li> <li><a href="{{url_for('main.actes', house=house.name)}}">Actes des ducs et duchesses {{ house.particle }}</a></li>
<li><a href="{{url_for('main.actes', house='Anjou')}}">Actes des ducs et duchesses d'Anjou</a></li>
</ul> {% endfor %}
</div><!-- /.container -->
{% endblock %} {% endblock %}

@ -3,25 +3,21 @@
click==8.1.3 click==8.1.3
dnspython==2.4.2 dnspython==2.4.2
email-validator==2.0.0.post2 email-validator==2.0.0.post2
Flask==2.2.2 Flask==2.3.3
flask-mongoengine==1.0.0
Flask-WTF==1.1.1 Flask-WTF==1.1.1
idna==3.4 idna==3.4
gunicorn==21.2.0 gunicorn==21.2.0
importlib-metadata==5.0.0 importlib-metadata==5.0.0
itsdangerous==2.1.2 itsdangerous==2.1.2
Jinja2==3.1.2 Jinja2==3.1.2
# FIXME remove lxml later MarkupSafe==2.1.3
# lxml==4.9.1
MarkupSafe==2.1.1
packaging==23.1 packaging==23.1
mongoengine==0.27.0 #mongoengine==0.27.0
# FIXME remove pewee later
# peewee==3.15.3
pymongo==4.5.0 pymongo==4.5.0
#soupsieve==2.3.2.post1 #soupsieve==2.3.2.post1
#tqdm==4.64.1 #tqdm==4.64.1
typing==3.7.4.3 typing==3.7.4.3
Werkzeug==2.2.2 Werkzeug==2.3.7
Flask-WTF==1.1.1
WTForms==3.0.1 WTForms==3.0.1
zipp==3.9.0 zipp==3.9.0

Loading…
Cancel
Save