initial commit
This commit is contained in:
16
project_name/ext/webui/__init__.py
Normal file
16
project_name/ext/webui/__init__.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from flask import Blueprint
|
||||
|
||||
from .views import index, only_admin, product, secret
|
||||
|
||||
bp = Blueprint("webui", __name__, template_folder="templates")
|
||||
|
||||
bp.add_url_rule("/", view_func=index)
|
||||
bp.add_url_rule(
|
||||
"/product/<product_id>", view_func=product, endpoint="productview"
|
||||
)
|
||||
bp.add_url_rule("/secret", view_func=secret, endpoint="secret")
|
||||
bp.add_url_rule("/only_admin", view_func=only_admin, endpoint="onlyadmin")
|
||||
|
||||
|
||||
def init_app(app):
|
||||
app.register_blueprint(bp)
|
||||
29
project_name/ext/webui/templates/index.html
Normal file
29
project_name/ext/webui/templates/index.html
Normal file
@@ -0,0 +1,29 @@
|
||||
{% extends "bootstrap/base.html" %}
|
||||
{% block title %}{{config.get('TITLE')}}{% endblock %}
|
||||
|
||||
{% block navbar %}
|
||||
<div class="navbar">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="#">
|
||||
<img alt="Brand" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAB+0lEQVR4AcyYg5LkUBhG+1X2PdZGaW3btm3btm3bHttWrPomd1r/2Jn/VJ02TpxcH4CQ/dsuazWgzbIdrm9dZVd4pBz4zx2igTaFHrhvjneVXNHCSqIlFEjiwMyyyOBilRgGSqLNF1jnwNQdIvAt48C3IlBmHCiLQHC2zoHDu6zG1iXn6+y62ScxY9AODO6w0pvAqf23oSE4joOfH6OxfMoRnoGUm+de8wykbFt6wZtA07QwtNOqKh3ZbS3Wzz2F+1c/QJY0UCJ/J3kXWJfv7VhxCRRV1jGw7XI+gcO7rEFFRvdYxydwcPsVsC0bQdKScngt4iUTD4Fy/8p7PoHzRu1DclwmgmiqgUXjD3oTKHbAt869qdJ7l98jNTEblPTkXMwetpvnftA0LLHb4X8kiY9Kx6Q+W7wJtG0HR7fdrtYz+x7iya0vkEtUULIzCjC21wY+W/GYXusRH5kGytWTLxgEEhePPwhKYb7EK3BQuxWwTBuUkd3X8goUn6fMHLyTT+DCsQdAEXNzSMeVPAJHdF2DmH8poCREp3uwm7HsGq9J9q69iuunX6EgrwQVObjpBt8z6rdPfvE8kiiyhsvHnomrQx6BxYUyYiNS8f75H1w4/ISepDZLoDhNJ9cdNUquhRsv+6EP9oNH7Iff2A9g8h8CLt1gH0Qf9NMQAFnO60BJFQe0AAAAAElFTkSuQmCC">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<h1>{{config.get('TITLE')}}</h1>
|
||||
|
||||
<div class="jumbotron">
|
||||
<ul class="list-group">
|
||||
{% for product in products %}
|
||||
<li class="list-group-item">
|
||||
<a href="{{url_for('webui.productview', product_id=product.id)}}">{{product.name}}- {{ "%0.2f" | format(product.price)}}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
13
project_name/ext/webui/templates/product.html
Normal file
13
project_name/ext/webui/templates/product.html
Normal file
@@ -0,0 +1,13 @@
|
||||
{% extends "index.html" %}
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<h1>{{ product.name }}</h1>
|
||||
|
||||
<div class="jumbotron">
|
||||
<h2>R$ {{ "%0.2f" | format(product.price)}}</h2>
|
||||
<p>
|
||||
{{product.description}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
26
project_name/ext/webui/views.py
Normal file
26
project_name/ext/webui/views.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from flask import abort, render_template
|
||||
from flask_simplelogin import login_required
|
||||
|
||||
from project_name.models import Product
|
||||
|
||||
|
||||
def index():
|
||||
products = Product.query.all()
|
||||
return render_template("index.html", products=products)
|
||||
|
||||
|
||||
def product(product_id):
|
||||
product = Product.query.filter_by(id=product_id).first() or abort(
|
||||
404, "produto nao encontrado"
|
||||
)
|
||||
return render_template("product.html", product=product)
|
||||
|
||||
|
||||
@login_required
|
||||
def secret():
|
||||
return "This can be seen only if user is logged in"
|
||||
|
||||
|
||||
@login_required(username="admin")
|
||||
def only_admin():
|
||||
return "only admin user can see this text"
|
||||
Reference in New Issue
Block a user