Составить план для моего первого проекта MySQL
Мне нужно заполнить план сайта " Спроси вопрос" для моего университета. в течение нескольких дней. Мне нужно подготовить первую версию кода к следующему вторнику, а завершение проекта - через три недели.
Вопросы о проекте, которые здесь не подходят
- сделать эффективные таблицы
- улучшить отношение фигуры
- улучшить диаграмму ERD
- для SHA1-хэширования вашего пароля в базе данных MySQL от Python
- иметь историю изменений по вопросам
- чтобы получить правильный путь в разработке баз данных
- получить первичные и внешние ключи прямо в ERD
- понять логин -вариант в куки /URL
- чтобы получить информацию о серверах моего Uni
- улучшить SQL -запросы
- правильно писать SQL -запросы в DDL
- предотвратить использование дублирующих тегов в вопросе
- улучшить SQL -запросы в DDL
- не иметь дублирующих тегов в таблице
- разделить ответы в базе данных
Мой универ. предлагает небольшую поддержку для инструментов, которые я выбрал:
Инструменты в создании бэкэнда
- Python в построении схемы базы данных??? (Я не уверен, какие компоненты я могу собрать с помощью Python)
- MySQL для хранения данных
- Я не уверен, какой инструмент использовать для построения системы входа и выхода. Они не позволяют мне использовать систему Google. Это вынуждает меня использовать простой код с открытым исходным кодом, так как для создания системы спуска входа в систему / выхода из системы потребуется больше недели.
Инструменты в построении интерфейса
- Django (если мы можем использовать MySQL в Django)
Инструменты для планирования
- Таблица Google Docs для иллюстрации вариантов использования
- TopCoder UML Tool для отображения первичных ключей и других связей в базе данных
Инструменты для кодирования
- Vim, Screen, Zsh, OS X Visor: мои точечные файлы
- EasyEclipse для Python (только если я получаю трудное сообщение об ошибке)
Мой фокус в проекте: я стремлюсь создать систему баз данных только для пользователей и модераторов, чтобы я предоставил только следующие функции
- чтобы позволить пользователю добавлять в базу данных так, чтобы я нейтрализовал ввод (я знаю, что для этого есть какой-то инструмент, но я не уверен насчет его имени.)
- расставлять вопросы по времени
- расставлять вопросы по имени
- расставлять вопросы по темам
- разрешить пользователям удалять свои вопросы
- отправить электронное письмо пользователю, чтобы вопрос был успешно задан
Вещи, в которых я не уверен
- как интегрировать систему входа в систему с базой данных так, чтобы при успешной регистрации пользователь видел только свои данные, которые являются его именем пользователя, так же, как в Joomla
- Какие компоненты не следует собирать с помощью Python, когда я использую MySQL для баз данных?
- Мой универ. не дает мне аппаратную поддержку проекта. Это говорит о том, что мне лучше использовать хост, специализирующийся на моем проекте. Я использовал Djangohosting.ch в прошлом месяце, и с их помощью я начал. Какой хост вы бы использовали, чтобы я мог показать конечный продукт своему Uni.?
Это мой первый официальный проект базы данных, поэтому у моего плана, очевидно, есть недостатки, так как должны быть инструменты, которых я не знаю. Пожалуйста, определите любой из них.
9 ответов
Во-первых, это все, над чем нужно работать за неделю. Но здесь это идет.
Инструменты для бэкэнда:
- SQLAlchemy - это инструментарий ORM, который является достаточно мощным для большинства небольших задач при использовании базы данных MySQL, созданной на Python. Насколько мне известно, это лучшее для этой работы. http://www.sqlalchemy.org/
- Django - "... это веб-фреймворк Python высокого уровня..." Это может быть лучше для быстрой разработки сайта с включенными методами входа / выхода из системы и минимальной кривой обучения для тех, кто понимает веб /Python.
Инструменты в построении интерфейса:
Если вы уже планируете использовать Django для бэкэнда, я бы рекомендовал использовать его и для внешнего интерфейса.
Вещи, в которых вы не уверены:
- Пользователи могут быть указаны в MySQL, и их разрешения могут быть установлены соответственно.
- Судя по некоторым из перечисленных вами требований, большинство из них звучат так, как будто они могут быть включены в возможности Django.
Я думаю, что все это может быть достигнуто в Джанго. Смотрите официальный учебник.
Используйте модель django для создания объектно-реляционного отображения (ORM), которое вводит и извлекает ваши данные.
Для входа в систему / выхода из системы в django есть функция AuthenticationMiddleware, которую вы, вероятно, можете использовать, хотя я не уверен, что вы сможете решить эту проблему с ней.
В любом случае ваш проект с заданными сроками абсолютно нереален. Будьте готовы пропустить крайний срок и услышать свистящий звук, который они издают, пролетая мимо.
Вы можете создать свою базу данных с MySQL, прочитайте официальные документы. На самом деле не имеет значения, какой язык вы используете для программирования внешнего интерфейса, будь то веб-сайт, интерфейс командной строки, графический интерфейс, большинство языков справляются с этим довольно хорошо, но кажется, что вы настроены на создание веб-приложения, и это может достичь очень легко с Django, который является веб-фреймворком Python.
Делая то, что я вам сказал, если вы будете продолжать в том же духе, вы будете готовы менее чем за 16 часов. Удачи. Btw. ваш проект, кажется, сосредоточен на многих несущественных вещах. Вы создаете приложение для базы данных, если вы еще не знаете CSS и JQuery, почему бы вам просто не создать его в простом не стилевом XHTML; таким образом у вас будет меньше работы!
Я предполагаю, что вам не разрешат использовать ORM, так как вы называете это "проектом MySQL".
Если это неверное предположение, я бы согласился с рекомендацией Н. Арнольда об использовании Django. Вместо использования SQLAlchemy, я думаю, вы обнаружите, что ORM Django достаточно хорош (особенно если вы используете v1.1rc или trunk).
Как и некоторые комментарии к вашему первоначальному вопросу, это кажется большой работой, если вам нужно изучить фреймворк и создать в нем проект. С другой стороны, кто-то, кто знал Джанго, мог взломать основу такого проекта за день или два.
Эхх, какова цель этого развития? Чтобы построить реальную систему, готовую к производству, или сдать экзамен, создав мини-проект, который никогда не будет реально использоваться?
Если ваша цель - сдать экзамен, то создайте то, что любят видеть ваши учителя. Возьмите подсказки из материала, который они использовали на уроках, а также прямо спросите их, что они считают хорошим.
Если вы хотите построить производственную систему, то Django будет отличным выбором. С уважением, однако, учитывая ограниченное понимание Django, которое вы демонстрируете, вы, скорее всего, не завершите проект вовремя.
Django имеет уже существующую функциональность для:
- Построение схемы базы данных. Таблицы БД будут buildt, когда вы определите классы вашей модели в Django и запустите manage.py syncdb.
- Система входа в систему. Django имеет систему входа в систему, в которую встроены файлы cookie и т. Д.; и несколько сторонних аддонов Django расширяют эту систему.
- Шифруя пароли в базе данных, Django использует SHA-1 с солью, если память служит.
Таким образом, ваши учителя могут с полным основанием сказать, что вы не продемонстрировали свои собственные навыки в моделировании схемы БД, вы только что использовали уже существующие функциональные возможности Djangos. Удастся ли им с этим или они сдадут вам экзамен?
Если вам нужно продемонстрировать понимание основных концепций, возможно, вам лучше остаться с системой, которую вы уже хорошо знаете, вместо того, чтобы смешивать Django как еще одну сложность, еще одну вещь, которую вам нужно изучить за очень короткое время.,
Django может использовать множество различных бэкэндов базы данных, одним из которых является MySQL, для поддержки этого он предоставляет слой ORM (Object Relational Mapping), который абстрагирует код SQL и носитель данных и позволяет вам писать модели, содержащие поля хранения и логику по мере необходимости, без беспокоиться о том, как они хранятся в постоянном слое.
Django также содержит базовые функции аутентификации (входа / выхода) и включает в себя концепцию пользователей и пользователей-администраторов.
Например, использование встроенных пользовательских моделей и ORM позволит вам получить ответы на все вопросы, заданные пользователем, с помощью следующего кода:
Question.objects.all.filter(asker=request.user)
Где Вопросы - это модель, которую вы определили для хранения ваших вопросов (с полем "asker", которое является внешним ключом для пользователя), а request.user - это пользователь, вошедший на веб-сайт.
Я предлагаю вам прочитать о Django ORM.
Что касается хостинга, вы можете использовать Ubuntu на настольном компьютере или, если вам нужен внешний хост, то порекомендует Webfaction или http://djangohosting.ch/ качестве двух самых "дружественных" Django-хостов.
О модераторах и пользователях
В чем разница между модераторами и пользователями? Модераторы могут изменять текст, но как? Они планируют, что вы будете практиковать разрешения, фс или какую-то систему с открытым исходным кодом, чтобы отличать пользователей от модераторов?
Очень странно, что они не допускают продукты Google, но они позволяют с открытым исходным кодом. Интересно, что USFCA поощряет продукты Google в подобных проектах. Возможно, есть некоторые пользователи, которые могли бы помочь вам с пользовательскими пространствами.
Удачи!
Они дают нам только этот пример веб-приложения. Код для меня бесполезен, так как код написан на финском языке и написан на PHP. Это также не с открытым исходным кодом, так что я не могу вставить код здесь.
Я хотел бы видеть подобные примеры в Python. Пожалуйста, разместите ссылки на комментарии.