معرفی شرکت ها


djangopollapp-0.1.1


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

A simple polls application
ویژگی مقدار
سیستم عامل -
نام فایل djangopollapp-0.1.1
نام djangopollapp
نسخه کتابخانه 0.1.1
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Coder Bug
ایمیل نویسنده thecoderbug@gmail.com
آدرس صفحه اصلی https://github.com/c0derbug/djangopollapp.git
آدرس اینترنتی https://pypi.org/project/djangopollapp/
مجوز -
# Django Poll App A simple polls application ## Requirements - Python >= 3.5.2 - Django 2.2.10 - Django REST framework 3.11.0 ## Installation Install using pip... ```sh pip install djangopollapp ``` Add the following to your settings.py module: ```sh INSTALLED_APPS = [ ... 'djangopollapp', ] MIDDLEWARE = [ ... 'djangopollapp.middleware.PollMiddleware', ] ``` Include polls api to your urls.py: ```sh # Polls API url('^api-polls/', include('djangopollapp.api.urls')) ``` and ```sh ./manage.py migrate ``` ## Testing the Setup Example superuser authentication: ```sh curl -X POST -d "username=<username>&password=<password>" http://127.0.0.1:8000/api-token-auth/ # Response from DRF {"token":"dfaef188d5f075802cf7b627a41e4dd3632d127b"}% ``` After that we can create poll without questions: ```sh curl -X POST -H "Authorization: Token <token>" -H "Content-Type: application/json" -d '{"poll": { "title":"Sample", "end_date":"2021-05-13T21:25:46Z", "description":"sample discript" } }' http://127.0.0.1:8000/api-polls/v1/polls/ # Response axample { "id":1, "author":1, "title":"Created-poll", "start_date":"2020-05-15T06:41:04.837196Z", "end_date":"2021-05-13T21:25:46Z", "description":"some descript", "is_active":true, "questions":[] } ``` ## Documentation ### For clients #### Unique ID At the first request to the resource, the middleware checks for a unique id in its cookies. If the id is not found, the middleware generates a unique id in the format "uu id" and gives the guest user a cookie, after which all requests are made with the context of a unique id #### Polls ***Get all active polls*** ```sh GET http://127.0.0.1:8000/api-polls/v1/polls/ #Response { "id": 6, "author": 1, "title": "One more poll", "start_date": "2020-05-15T11:36:44.018535Z", "end_date": "2021-05-13T21:25:46Z", "description": "some description for this poll", "is_active": true, "questions": null }, { "id": 5, "author": 1, "title": "One more poll", "start_date": "2020-05-15T11:36:09.603685Z", "end_date": "2021-05-13T21:25:46Z", "description": "some description for this poll", "is_active": true, "questions": null }, ... ] ``` ***Get polls by client***, with choice detalization ```sh GET http://127.0.0.1:8000/api-polls/v1/polls/for-client/ #Response [ { "id": 7, "author": 1, "title": "First poll", "start_date": "2020-05-15T11:50:09.293380Z", "end_date": "2021-05-13T21:25:46Z", "description": "some description for this poll", "is_active": true, "questions": [ { "id": 19, "poll": 7, "qns": "what?", "qns_type": 1, "choices": null }, { "id": 20, "poll": 7, "qns": "when?", "qns_type": 2, "choices": [ { "id": 25, "qns": 20, "text": "Today", "vote_counter": 0, "selected": true }, { "id": 26, "qns": 20, "text": "Еomorrow", "vote_counter": 0, "selected": false } ] }, { "id": 21, "poll": 7, "qns": "where?", "qns_type": 3, "choices": [ { "id": 27, "qns": 21, "text": "here", "vote_counter": 0, "selected": true }, { "id": 28, "qns": 21, "text": "there", "vote_counter": 0, "selected": true } ] } ] } ] ``` ___ ***To answer*** We transfer the list of objects. Attributes of each object: ***question id, question type and selected options / text*** ```sh POST http://127.0.0.1:8000/api-polls/v1/polls/{id}/to-answer/ #data [ { "id": 19, "qns_type": 1, "choices": {"text": "Some text"} }, { "id": 20, "qns_type": 2, "choices": 25 }, { "id": 21, "qns_type": 4, "choices": [27, 28] } ... ] #Response HTTP Status 201 OK ``` ___ ### For admins #### Authorization Uses standard token authorization from drf ***All requests except get require authorization*** ```sh curl -d '{"username": <username>,"password": <password>}' -H "Content-Type: application/json" -X POST http://127.0.0.1:8000/api-token-auth/ #Response {"token":"dfaef188d5f075802cf7b627a41e4dd3632d127b"} ``` --- #### Polls ***Create*** A poll is created in two parts: - Poll data - Question data Each question has its own type. - 1 - Text answer - 2 - Single Choice - 3 - Multi Choice If question type is 1(Text answer), choices field must be empty. If question type is 2(Single Choice) or 3(Multi Choice), choices field will be a include choice objects In the data of each question, we also put choices depending on its type ```sh curl http://127.0.0.1:8000/api-polls/v1/polls/ \ -X POST \ -H "Authorization: Token dfaef188d5f075802cf7b627a41e4dd3632d127b" \ -d '{ "poll": { "title": "One more poll", "end_date": "2021-05-13T21:25:46Z", "description": "some description for this poll", }, "questions": [ ... { "qns": "what the fuck?", "qns_type": 1, "choices": [ ... { "text": "some choice", } ] }, ... ] }' ``` ___ ***Update*** You can change one or more fields Poll | Editable fields | type | mean | | ------ | ------ | ------ | | title | string | Poll title | | end_date | datetime | Date of end poll | | description | string | Description | ```sh PATCH http://127.0.0.1:8000/api-polls/v1/polls/{id}/ #Response { "id": 7, "author": 1, "title": "First poll", "start_date": "2020-05-15T11:50:09.293380Z", "end_date": "2021-05-13T21:25:46Z", "description": "some description for this poll!!!", "is_active": true, "questions": [ { "id": 19, "poll": 7, "qns": "what?what?", "qns_type": 1, "choices": null }, ... ] } ``` Question | Editable fields | type | mean | | ------ | ------ | ------ | | poll | int | related poll | | qns | string | question | | qns_type | int | 1 - text, 2 - single choice, | | | 3 - multi choice | ```sh PATCH http://127.0.0.1:8000/api-polls/v1/question/{id}/ #Response { "id": 19, "poll": 7, "qns": "what?", "qns_type": 1, "choices": null } ``` ***Delete*** Poll ```sh DELETE http://127.0.0.1:8000/api-polls/v1/polls/{id}/ #Response HTTP Status 204 No Content ``` Question ```sh DELETE http://127.0.0.1:8000/api-polls/v1/questions/{id}/ #Response HTTP Status 204 No Content ```


زبان مورد نیاز

مقدار نام
>=3.5.2 Python


نحوه نصب


نصب پکیج whl djangopollapp-0.1.1:

    pip install djangopollapp-0.1.1.whl


نصب پکیج tar.gz djangopollapp-0.1.1:

    pip install djangopollapp-0.1.1.tar.gz