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

質問編集履歴

1

誤投稿の修正

2018/02/22 03:47

投稿

kusao
kusao

スコア23

title CHANGED
File without changes
body CHANGED
@@ -1,33 +1,78 @@
1
1
  ### 前提・実現したいこと
2
2
  以前質問させて頂いた、SVGデータの不要タグを除去するというプログラムがターミナル上で
3
+ (https://teratail.com/questions/113910)
3
4
  うまく動くようになりました。自身のスキルアップのためにも、Webアプリにしてみようと思い、Djangoに
4
5
  取り組んでいます。
5
6
  チュートリアルもこなし、ある程度、どのような仕組みになっているかということが理解できたのですが、
6
7
  POSTの受け渡しに間することで悩んでいます。
7
8
 
8
9
  実現したいフローは
9
- 0.templete>app_name>index.html内の<form><input type="file"></form>から
10
+ templete>app_name>index.html内の<form><input type="file"></form>から データ(ファイル名)を受け取る。
10
- データ(ファイル名)を受け取る。
11
- 0.
12
- 0.
13
- 0.
14
11
 
12
+ 2 フォーム内にチェックボックスを用意(除去するタグ名)して、選択されたものを受け取り、リストに格納
13
+
14
+ 3 受け取ったファイルに対して、リストに格納されたタグを除去していく(全質問で解決しました。)
15
+
15
16
  ### 発生している問題・エラーメッセージ
17
+ 1、2の過程をどうしたらいいのか分からず、手詰りしています。値をrequest.POSTで受け取るのは
18
+ 何となくわかるのですが、それをどのように活かせばいいのか分からない状態です。
16
19
 
20
+ ### 該当のソースコード
21
+
22
+ ```html
23
+ <!--index.html--!>
24
+
25
+ <form action="../../views.change_svg" method="post">
26
+ <input id="file" name="file" value="file" type="file" />
27
+ <br>
28
+ <p>削除したいタグをチェック</p>
29
+ <input type="checkbox" name="title" value="title">title
30
+ <input type="checkbox" name="style" value="style">style
31
+ <button type="submit">アップロードして変換</button>
32
+ </form>
17
33
  ```
34
+ ```python
18
- エラーメッセージ
35
+ #view.py
36
+
37
+ #データを受け取り、リストに格納
38
+ def form_post(request):
39
+ unnecessary_tags = []
40
+
41
+ file_name = request.POST['file']
42
+ checked_title = request.POST['title']
43
+ checked_style = request.POST['style']
44
+
45
+ unnecessary_tags.append(checked_title).append(checked_style)
46
+
47
+ return file_name, unnecessary_tags
19
48
  ```
20
49
 
50
+ ```python
21
- ### 該当のソースコード
51
+ #view.py
22
52
 
53
+ def change_svg(request):
54
+ form_post()
55
+ with open(file_name, 'r', encoding="utf-8") as f:
23
- ```ここに言語名を入力
56
+ for row in f:
57
+ for tag in unnecessary_tags:
58
+ after_delete_tag = re.sub(r"<{tag}>.*</{tag}>".format(tag=tag), "", row)
59
+ row = after_delete_tag
60
+
61
+ image_name = os.path.basename(image)
62
+ new_file_name = ("new_" + image_name)
63
+ os.makedirs("after", exist_ok=True)
64
+
65
+ with open("after/" + new_file_name, "w", encoding="utf-8" ) as ff:
24
- ソースコード
66
+ ff.write(row)
67
+
68
+ print("終了しました。新規ファイルとして保存されました。")
25
69
  ```
26
70
 
27
- ### 試したこと
28
71
 
29
- ここに問題に対して試したことを記載してください。
30
72
 
73
+
31
74
  ### 補足情報(FW/ツールのバージョンなど)
32
75
 
76
+ python3.6.4
77
+ Django2.0.2
33
- ここにより詳細な情報を記載してください。
78
+ Macで動かしています