Update make the search section

This commit is contained in:
Roman Mogylatov 2020-07-20 13:49:53 -04:00
parent dd5eca9754
commit d41442df1c
6 changed files with 20 additions and 16 deletions

View File

@ -633,7 +633,10 @@ and put next into it:
def search_repositories(self, term, limit):
"""Search for repositories and return formatted data."""
repositories = self._github_client.search_repositories(term, **{'in': 'name'})
repositories = self._github_client.search_repositories(
query=term,
**{'in': 'name'},
)
return [
self._format_repo(repository)
for repository in repositories[:limit]
@ -703,12 +706,12 @@ Edit ``containers.py``:
Make the search
---------------
Now we are ready to make the search work.
Now we are ready to make the search work. Let's use the ``SearchService`` in the ``index`` view.
Edit ``views.py``:
.. code-block:: python
:emphasize-lines: 5,8,11,16
:emphasize-lines: 5,8,10
"""Views module."""
@ -718,9 +721,8 @@ Edit ``views.py``:
def index(search_service: SearchService):
search_term = request.args.get('search_term')
repositories = search_service.search_repositories(search_term)
search_term = request.args.get('search_term', 'Dependency Injector')
repositories = search_service.search_repositories(search_term, limit=10)
return render_template(
'index.html',
@ -728,6 +730,8 @@ Edit ``views.py``:
repositories=repositories,
)
Now let's inject the ``SearchService`` dependency into the ``index`` view.
Edit ``containers.py``:
.. code-block:: python
@ -769,16 +773,11 @@ Edit ``containers.py``:
search_service=search_service,
)
Edit ``config.yml``:
Make sure the app is running or use ``flask run`` and open ``http://127.0.0.1:5000/``.
.. code-block::
:emphasize-lines: 3-5
You should see:
github:
request_timeout: 10
search:
default_term: "Dependency Injector"
default_limit: 5
.. image:: flask_images/screen_02.png
Tests
-----

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 KiB

View File

@ -4,6 +4,8 @@ Flask Dependency Injection Example
Application ``githubnavigator`` is a `Flask <https://flask.palletsprojects.com/>`_ +
`Dependency Injector <http://python-dependency-injector.ets-labs.org/>`_ application.
.. image:: screenshot.png
Run
---

View File

@ -2,4 +2,4 @@ github:
request_timeout: 10
search:
default_term: "Dependency Injector"
default_limit: 5
default_limit: 10

View File

@ -13,7 +13,10 @@ class SearchService:
def search_repositories(self, term, limit):
"""Search for repositories and return formatted data."""
repositories = self._github_client.search_repositories(term, **{'in': 'name'})
repositories = self._github_client.search_repositories(
query=term,
**{'in': 'name'},
)
return [
self._format_repo(repository)
for repository in repositories[:limit]

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 KiB