teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ソースコードを全文載せました。

2018/03/30 12:30

投稿

hiro__12
hiro__12

スコア36

title CHANGED
File without changes
body CHANGED
@@ -14,6 +14,67 @@
14
14
  ### 該当のソースコード
15
15
 
16
16
  ```ここに言語名を入力
17
+ import xml.etree.ElementTree as ElementTree
18
+ from xml.dom import minidom
19
+ import logging
20
+ from orator import DatabaseManager, Model
21
+ from orator.orm import belongs_to, has_many
22
+
23
+ logger = logging.getLogger('orator.connection.queries')
24
+ logger.setLevel(logging.DEBUG)
25
+
26
+ formatter = logging.Formatter(
27
+ 'It took %(elapsed_time)sms to execute the query %(query)s'
28
+ )
29
+
30
+ handler = logging.StreamHandler()
31
+ handler.setFormatter(formatter)
32
+
33
+ logger.addHandler(handler)
34
+
35
+ config = {
36
+ 'mysql': {
37
+ 'driver': 'mysql',
38
+ 'host': 'localhost',
39
+ 'database': 'aozora_bunko',
40
+ 'user': 'root',
41
+ 'password': '',
42
+ 'prefix': '',
43
+ 'log_queries': True,
44
+ }
45
+ }
46
+
47
+ db = DatabaseManager(config)
48
+ Model.set_connection_resolver(db)
49
+
50
+ class MojidukaiType(Model):
51
+
52
+ pass
53
+
54
+ class Work(Model):
55
+
56
+ URL_FORMAT = "http://www.aozora_bunko.gr.jp/cards/{writer_id:06d}/card{id}.html"
57
+
58
+ @belongs_to
59
+ def mojidukai_type(self):
60
+ return MojidukaiType
61
+
62
+ @belongs_to
63
+ def writer(self):
64
+ return writer
65
+
66
+ def build_url(self):
67
+ return self.URL_FORMAT.format(
68
+ writer_id=self.writer_id,
69
+ id=self.id
70
+ )
71
+
72
+ class Writer(Model):
73
+
74
+ @has_many
75
+ def works(self):
76
+ return Work
77
+
17
78
  def create_xml():
18
79
  elm_root = ElementTree.Element("catalog")
19
80
  writers = Writer.all()
@@ -31,5 +92,6 @@
31
92
 
32
93
  if __name__ == '__main__':
33
94
  xml_str = create_xml()
34
- print(xml_str)
95
+ print(xml_str)
96
+
35
97
  ```