Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 10.08.2012
Сообщений: 21

Создание простого web-приложения (задача с каких-то курсов)

05.02.2015, 15:08. Показов 2637. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, товарищи форумчане!

Решил я понемногу осваивать web на python'e и нашел подходящую задачу:

-----
Необходимо разработать приложение, упрощенное рабочее место фармацевта, выписывающего рецепты на очки и линзы. Операции, которые необходимо проводить, описаны ниже.

Пользователем приложения является только фармацевт.
Фармацевт обслуживает два типа клиентов: новых и тех, кто заказывал очки и линзы ранее.
При приходе к фармацевту клиент указывает свою имя и фамилию и фармацевт должен проверить существует ли такой пользователь в базе клиентов.
В случае, если пользователь существует, фармацевту нужно иметь возможность открыть карточку с его данными (описаны ниже).

В карточке кроме персональных данных клиента должен быть список его визитов в аптеку со следующей информацией:
- Visit Date
- Order Amount (USD 0 – 10,000)
- Order Status (Completed / In Progress / Cancelled)
Список визитов можно редактировать: добавлять/изменять/удалять.

В случае, если пользователя не существует, либо он говорит, что ни разу не был клиентом, необходима возможность создать ему карточку клиента со следующими данными:
- First Name
- Last Name
- Date of Birth
- Address
- Phone
- Email
- Left Eye (number -10 - +10)
- Right Eye (number -10 - +10)

Весь интерфейс приложения должен быть на английском языке и рассчитывать на англоязычных пользователей (поддержка кириллицы не обязательна).

-----
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2015, 15:08
Ответы с готовыми решениями:

Help me найти исходный код простого web приложения на Java
В общем, мне скоро нужно сдать лабораторную работу по Java. Через неделю. Мы только начали ее изучать, поэтому уровень сложности не очень...

Создание простого приложения в Qt
Всем доброго времени суток. У меня такая проблема, я решил научится програмированию в Qt скачал, устоновил просмотрел пару уроков, почитал...

Создание простого MDI приложения
здравствуйте!Вопрос по C#. Никак не могу сделать простое MDI приложение. Есть две формы: Form1 и Form2. Ставлю свойство для Form1...

6
23 / 23 / 16
Регистрация: 17.01.2014
Сообщений: 81
05.02.2015, 15:13
Решили задачей поделиться?
0
0 / 0 / 0
Регистрация: 10.08.2012
Сообщений: 21
05.02.2015, 15:21  [ТС]
Погуглив, я понял (не знаю правильно-ли), что:
а) Можно использовать какой-либо фреймворк
б) Писать CGI-скрипт

Я остановился на втором варианте.

С Linux я не знаком, поэтому делаю под Windows.

1) Для начала я нашел инструкцию по запуску простого сервера (чтобы не устанавливать лишнее):
Python
1
2
3
4
5
6
7
8
9
10
11
import os
import sys
from http.server import HTTPServer, CGIHTTPRequestHandler
 
webdir = '.'    # место, где находятся файлы html и подкаталог cgi-bin
port = 8000     # [url]http://localhost:xxxx/[/url]
 
os.chdir(webdir)            # перейти в корневой каталог HTML
srvraddr = ("", port)       # имя хоста и номер порта
srvrobj = HTTPServer(srvraddr, CGIHTTPRequestHandler)
srvrobj.serve_forever()   # запустить как бесконечный фоновый процесс
Добавлено через 1 минуту
TroSer,
Скорее, просить помощи в решении первых вопросов.
0
0 / 0 / 0
Регистрация: 10.08.2012
Сообщений: 21
05.02.2015, 15:31  [ТС]
2) Далее первая HTML страничка с формами:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<title>Start Page</title>
<body>
<form method=GET action="cgi-bin/cgi.py">
    <table>
        <tr>
            <td>First name:
            <td><input type=text name=firstname>
        </tr>
        <tr>
            <td>Last name:
            <td><input type=text name=lastname>
        </tr>
    </table>
    <p>
    <input type=submit value=Send>
</form>
</body>
</html>
Визуализация форм:
Изображения
 
0
0 / 0 / 0
Регистрация: 10.08.2012
Сообщений: 21
05.02.2015, 15:38  [ТС]
3) Затем сам скрипт (точнее, лишь его малая часть для отладки):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/python
import cgi
form = cgi.FieldStorage()       # парсинг данных формы
a = form['firstname'].value
b = form['lastname'].value
 
print('Content type: text/html\n')  # http-заголовок плюс пустая строка
print('<title>Riply page</title>')  # html-разметка ответа
 
if 'firstname' != None and 'lastname' != None:
    print('<h1>Hello %s %s!</h1>' % cgi.escape(a, b))
else:
    print('<h1>Who are you?</h1>')
И вот здесь, так сказать в самом начале пути, я не могу извлечь данные из форм...
Получаю вот такую штуку:
a = form['firstname'].value
File "C:\Python34\lib\cgi.py", line 598, in __getitem__
raise KeyError(key)
KeyError: 'firstname'


Добавлено через 51 секунду
Подскажите, пожалуйста, что не так?!
0
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
05.02.2015, 16:57
Как очевидно из строки ошибки, говорит, что таких ключей у формы нет. Сразу кидаю пример из офф. доки:
Python
1
2
3
4
5
6
form = cgi.FieldStorage()
if "name" not in form or "addr" not in form:
    print("<H1>Error</H1>")
    print("Please fill in the name and addr fields.")
print("<p>name:", form["name"].value)
print("<p>addr:", form["addr"].value)
Теперь подробнее. Перед тем, как извлечь значение какого-либо элемента неплохо бы убедиться, что элемент присутствует. Насколько я помню, если элемент формы ничем не заполнен, в запросе по onSubmit() он может и не отправиться, тогда ключа с таким именем не будет в FieldStorage(), на что вам питон и ругается.
0
26 / 26 / 6
Регистрация: 19.10.2012
Сообщений: 131
06.02.2015, 01:45
Цитата Сообщение от Prosto Denis Посмотреть сообщение
а) Можно использовать какой-либо фреймворк
Самым эффективным вариантом, так как cgi для python не самый лучший, будет использовать uWSGI и заодно, если необходимо что-то простое - flask, bottle, pyramid. По первому фреймворку очень много информации уже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2015, 01:45
Помогаю со студенческими работами здесь

Создание простого оконного приложения
Создать проект на языке Object Pascal, используя стандартные объекты Delphi для вычисления функции: Функцию я вложила в виде...

Создание простого приложения. Что нужно знать?
Задача формулируется следующим образом: Изобразить на єкране лабиринт. По нему перемещается &quot;нечто&quot;. Перемещение управляется...

Создание простого оконного приложения по решению математической задачи
Учебный проект. Передо мной была поставлена задача написать код, решающий математическую задачу двумя способами: консольное приложение и ...

Создание простого консольного ООП-приложения любой тематики
Всем привет, нужна помощь в создании простого консольного приложения. Вот несколько условий: 1. Использовать возможности ООП: классы,...

Нужны исходники простого простого приложения под Android для примера
можете дать ссылку на приложение под андроид?не Hello Word а какое нибудь другое но тоже простое на подобие этого ?хочу понять как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru