Мне связали вопрос с некоторыми руководствами для решения проблемы. У меня есть со мной XML-файл, я должен заполнить его в систему баз данных (безотносительно, это мог бы быть sqlite, mysql), использующий язык сценариев: Python.
У кого-либо есть какая-либо идея о том, как продолжить двигаться?
Я уже попытался проанализировать xml, использующий и основанным на дереве и методом саксофона на другом языке, но запускаться с Python, я не знаю, где запустить. Я уже знаю, как разработать базу данных, в которой я нуждаюсь.
Другой вопрос, действительно ли Python один возможный из выполняющейся базы данных ddl запросы?
Я рекомендую вам учиться на ElectionTree Для анализа вашего XML-файла в память (анализировать все все, а затем излучает все это на SQL DB, вероятно, проще, но элемент-дерево также обеспечивает инкрементную работу, если ваш файл огромен) - это часть Стандартной библиотеки Python в качестве модуля xml.etree .
Я рекомендую SQLite3 (также в стандартной библиотеке Python) в качестве реляционной БД выбора (если у вас есть выбор), снова, потому что он удобно и легко - базовая встроенная реляционная БД SQLite Хорошо документировано в своего собственного сайта . Если вам нужен общий урок на том, как Python любит интерфейс для реляционных DBS («DB-API»), здесь приятный здесь .
Как только вы полностью понимаете ETREE и SQLite3 - и вам не обязательно надо устанавливать любого вещь для либо (что является частью их прелестей ;-) - вы в основном все настроен. (Конечно, установка сама SQLite (командная линия и / или инструменты GUI), чтобы вы могли посмотреть ваши файлы БД и настраивать их, могут быть приятными, как могут графические редакторы XML, такие как Oxygen или XMLMind Чтобы посмотреть и / или настроить свой XML, но ни один из них не является необходимым , не совсем не связано с использованием Python, а не на других языках для анализа XML и SQLite STAPLITE ;-) Отказ
И да, вы можете совершенно хорошо делать Create Table
и другие запросы DDL из SQLite3
(и любой другой, совместный модуль Python DB-API, если вы решите использовать другие реляционные добу ;-).
Поздняя привязка на самом деле не является функцией самого языка Си, больше того, что ваша среда выполнения обеспечивает для вас.
Многие системы обеспечивают отложенную привязку в качестве функции компоновщика/загрузчика, а также можно использовать явные вызовы, такие как dlopen
(для открытия общей библиотеки) и dlsym
(для получения адреса символа внутри этой библиотеки, чтобы получить доступ к ней или вызвать ее).
Единственным полупортативным способом получения позднего связывания со стандартом C было бы использование некоторой хитрости с системой ()
и даже, по крайней мере, частично, специфичной для реализации.
Если вы говорите не столько об отложенном связывании, сколько о полиморфизме, вы можете достичь этого эффекта с помощью указателей функций. В основном создается структура
, которая содержит все данные для типа вместе с указателями функций для поиска методов для этого типа. Затем в «конструкторе» (как правило, функции init () ) задаются указатели функций для соответствующих функций этого типа.
Вам все еще нужно включить весь код, даже если вы не используете его, но это возможно, чтобы получить полиморфизм, который путь.
-121--3329768-Это короткая презентация на OpenSessionInView with Wicket.
При правильном использовании подход OpenSessionInView должен гарантировать отсутствие LazyInitializationException
.
Если вы привыкли к DOM (дерево) доступ к xml с другого языка, вы можете найти полезные эти стандартные библиотечные модули (и их соответствующие документы):
Для сохранения этих данных в БД можно использовать стандартный модуль sqlite3 или вид Или вы можете использовать нечто более абстрактное, как SQLAlchemy или Django's ORM.