mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-09 15:42:23 +03:00
Update ghnav-flask example & README
This commit is contained in:
parent
d41442df1c
commit
b979de623b
|
@ -103,8 +103,8 @@ the application structure. It is **easy to understand and change** it.
|
||||||
index_view = flask.View(
|
index_view = flask.View(
|
||||||
views.index,
|
views.index,
|
||||||
search_service=search_service,
|
search_service=search_service,
|
||||||
default_search_term=config.search.default_term,
|
default_query=config.search.default_query,
|
||||||
default_search_limit=config.search.default_limit,
|
default_limit=config.search.default_limit,
|
||||||
)
|
)
|
||||||
|
|
||||||
Running such container looks like this:
|
Running such container looks like this:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
github:
|
github:
|
||||||
request_timeout: 10
|
request_timeout: 10
|
||||||
search:
|
search:
|
||||||
default_term: "Dependency Injector"
|
default_query: "Dependency Injector"
|
||||||
default_limit: 10
|
default_limit: 10
|
||||||
|
|
|
@ -32,6 +32,6 @@ class ApplicationContainer(containers.DeclarativeContainer):
|
||||||
index_view = flask.View(
|
index_view = flask.View(
|
||||||
views.index,
|
views.index,
|
||||||
search_service=search_service,
|
search_service=search_service,
|
||||||
default_search_term=config.search.default_term,
|
default_query=config.search.default_query,
|
||||||
default_search_limit=config.search.default_limit,
|
default_limit=config.search.default_limit,
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,10 +11,10 @@ class SearchService:
|
||||||
def __init__(self, github_client: Github):
|
def __init__(self, github_client: Github):
|
||||||
self._github_client = github_client
|
self._github_client = github_client
|
||||||
|
|
||||||
def search_repositories(self, term, limit):
|
def search_repositories(self, query, limit):
|
||||||
"""Search for repositories and return formatted data."""
|
"""Search for repositories and return formatted data."""
|
||||||
repositories = self._github_client.search_repositories(
|
repositories = self._github_client.search_repositories(
|
||||||
query=term,
|
query=query,
|
||||||
**{'in': 'name'},
|
**{'in': 'name'},
|
||||||
)
|
)
|
||||||
return [
|
return [
|
||||||
|
|
|
@ -7,15 +7,25 @@
|
||||||
<h1 class="mb-4">Github Navigator</h1>
|
<h1 class="mb-4">Github Navigator</h1>
|
||||||
|
|
||||||
<form>
|
<form>
|
||||||
<div class="form-group form-row">
|
<div class="form-group form-row">
|
||||||
<label for="search_term" class="col-form-label">Search for:</label>
|
<div class="col-10">
|
||||||
<div class="col-10">
|
<label for="search_query" class="col-form-label">Search for:</label>
|
||||||
<input class="form-control" type="text" id="search_term"
|
<input class="form-control" type="text" id="search_query"
|
||||||
placeholder="Type something to search on the GitHub"
|
placeholder="Type something to search on the GitHub"
|
||||||
name="search_term"
|
name="query"
|
||||||
value="{{ search_term if search_term }}">
|
value="{{ query if query }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col">
|
||||||
|
<label for="search_limit" class="col-form-label">Limit:</label>
|
||||||
|
<select class="form-control" id="search_limit" name="limit">
|
||||||
|
{% for value in [5, 10, 20] %}
|
||||||
|
<option {% if value == limit %}selected{% endif %}>
|
||||||
|
{{ value }}
|
||||||
|
</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<p><small>Results found: {{ repositories|length }}</small></p>
|
<p><small>Results found: {{ repositories|length }}</small></p>
|
||||||
|
|
|
@ -5,12 +5,19 @@ from flask import request, render_template
|
||||||
from .services import SearchService
|
from .services import SearchService
|
||||||
|
|
||||||
|
|
||||||
def index(search_service: SearchService, default_search_term: str, default_search_limit: int):
|
def index(
|
||||||
search_term = request.args.get('search_term', default_search_term)
|
search_service: SearchService,
|
||||||
repositories = search_service.search_repositories(search_term, default_search_limit)
|
default_query: str,
|
||||||
|
default_limit: int,
|
||||||
|
):
|
||||||
|
query = request.args.get('query', default_query)
|
||||||
|
limit = request.args.get('limit', default_limit, int)
|
||||||
|
|
||||||
|
repositories = search_service.search_repositories(query, limit)
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
'index.html',
|
'index.html',
|
||||||
search_term=search_term,
|
query=query,
|
||||||
|
limit=limit,
|
||||||
repositories=repositories,
|
repositories=repositories,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user