|
1 |
| -from flask import Flask, render_template, redirect, url_for |
2 |
| -from flask_sqlalchemy import SQLAlchemy |
3 |
| -from werkzeug.exceptions import InternalServerError |
4 | 1 | import sqlite3
|
5 |
| -import webbrowser |
6 |
| -import threading |
7 |
| -from PyQt5.QtWidgets import QMessageBox |
8 | 2 | import sys
|
| 3 | +import threading |
| 4 | +import webbrowser |
9 | 5 |
|
10 |
| -sys.tracebacklimit = 0 # traceback görüntülenmemesi için |
11 |
| - |
12 |
| -vt = sqlite3.connect("veritabani.db") |
13 |
| -im = vt.cursor() |
14 |
| -im.execute("""SELECT * FROM metin__anahtar__tablo""") |
15 |
| -veriler = ( |
16 |
| - im.fetchall() |
17 |
| -) # tablodaki verileri fetchall fonksiyonu ile veriler değişkenine alıyorum |
| 6 | +from flask import Flask, redirect, render_template, url_for |
| 7 | +from flask_sqlalchemy import SQLAlchemy |
| 8 | +from PyQt5.QtWidgets import QMessageBox |
| 9 | +from werkzeug.exceptions import InternalServerError |
18 | 10 |
|
19 |
| -app = Flask(__name__) |
20 |
| -app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///veritabani.db" |
| 11 | +app = Flask("database") |
| 12 | +app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///database.db" |
21 | 13 | app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
|
22 | 14 | db = SQLAlchemy(app)
|
23 | 15 |
|
24 | 16 |
|
25 |
| -class Metin_Anahtar_Tablo(db.Model): |
| 17 | +class text_keyword_table(db.Model): |
26 | 18 | id = db.Column(db.Integer, primary_key=True)
|
27 |
| - Metin = db.Column(db.String, unique=True, nullable=False) |
28 |
| - Lemma_metin = db.Column(db.String, unique=True, nullable=False) |
29 |
| - Metin_pos = db.Column(db.String, unique=True, nullable=False) |
30 |
| - Anahtar = db.Column(db.String, unique=True, nullable=False) |
| 19 | + text = db.Column(db.String, unique=True, nullable=False) |
| 20 | + text_lemma = db.Column(db.String, unique=True, nullable=False) |
| 21 | + text_pos = db.Column(db.String, unique=True, nullable=False) |
| 22 | + keyword = db.Column(db.String, unique=True, nullable=False) |
31 | 23 |
|
32 | 24 |
|
33 | 25 | db.create_all()
|
34 | 26 |
|
35 |
| -gelen_metin = "" |
36 |
| -gelen_metin_lemma_str = "" |
37 |
| -gelen_metin_lemma_pos_str = "" |
38 |
| -gelen_siralanmis_anahtar_kelimeler_str = "" |
| 27 | +sys.tracebacklimit = 0 # traceback görüntülenmemesi için |
| 28 | +database_connection = sqlite3.connect("database.db") |
| 29 | +cursor = database_connection.cursor() |
| 30 | +cursor.execute("""SELECT * FROM text_keyword_table""") |
| 31 | +database_datas = cursor.fetchall() |
39 | 32 |
|
| 33 | +new_data_list = [] |
40 | 34 |
|
41 |
| -def degiskenleri_al(metin, metin_lemma, metin_token_pos, siralanmis_anahtar_kelimeler): |
42 |
| - global gelen_metin |
43 |
| - gelen_metin = metin |
44 | 35 |
|
45 |
| - global gelen_metin_lemma_str |
46 |
| - global gelen_metin_lemma_pos_str |
47 |
| - global gelen_siralanmis_anahtar_kelimeler_str |
| 36 | +def new_data_preprocessing( |
| 37 | + new_data, |
| 38 | +): # new_data: Tuple: TEXT, lemma_list, pos_list, sorted_key_words_or_phrases |
| 39 | + new_data_list.append(new_data[0]) |
48 | 40 |
|
49 |
| - gelen_metin_lemma_str = " ".join( |
50 |
| - metin_lemma |
51 |
| - ) # metin_lemma listesini boşluğa göre listedeki kelimeleri birleştirip str elde ediyorum. |
| 41 | + new_data_list.append(" ".join(new_data[1])) |
52 | 42 |
|
53 |
| - for i, y in zip(metin_lemma, metin_token_pos): |
54 |
| - gelen_metin_lemma_pos_str = ( |
55 |
| - gelen_metin_lemma_pos_str + str("(" + i + " - " + y + ")") + ", " |
56 |
| - ) |
| 43 | + # Lemma Word + POS Type Word = lemma_pos_text (String) |
| 44 | + lemma_pos_text = "" |
| 45 | + for i, y in zip(new_data[1], new_data[2]): |
| 46 | + lemma_pos_text = lemma_pos_text + str("(" + i + " - " + y + ")") + ", " |
| 47 | + new_data_list.append(lemma_pos_text) |
57 | 48 |
|
58 |
| - for i, y in zip( |
59 |
| - siralanmis_anahtar_kelimeler, range(len(siralanmis_anahtar_kelimeler)) |
60 |
| - ): |
61 |
| - gelen_siralanmis_anahtar_kelimeler_str = ( |
62 |
| - gelen_siralanmis_anahtar_kelimeler_str + str(y + 1) + " - " + str(i) + ", " |
| 49 | + # sorted_key_words_or_phrases convert to String and Different Format: sorted_key_words_or_phrases_str |
| 50 | + sorted_key_words_or_phrases_str="" |
| 51 | + for i, y in zip(new_data[3], range(len(new_data[3]))): |
| 52 | + sorted_key_words_or_phrases_str = ( |
| 53 | + sorted_key_words_or_phrases_str + str(y + 1) + " - " + str(i) + ", " |
63 | 54 | )
|
| 55 | + new_data_list.append(sorted_key_words_or_phrases_str) |
64 | 56 |
|
65 | 57 |
|
66 |
| -def veritabani_kayit_ekle(): |
67 |
| - for i in range( |
68 |
| - len(veriler) |
69 |
| - ): # Tabloda aynı kayıt var mı, yok mu kontrolü. for/else yapısı |
| 58 | +def database_add_record(): |
| 59 | + for i, database_data in enumerate( |
| 60 | + (database_datas) |
| 61 | + ): # Check if there is the same record in the table or not. for/else structure. |
70 | 62 | if (
|
71 |
| - veriler[i][1] == gelen_metin |
72 |
| - or veriler[i][2] == gelen_metin_lemma_str |
73 |
| - or veriler[i][3] == gelen_metin_lemma_pos_str |
74 |
| - or veriler[i][4] == gelen_siralanmis_anahtar_kelimeler_str |
| 63 | + database_data[1] == new_data_list[0] |
| 64 | + or database_data[2] == new_data_list[1] |
| 65 | + or database_data[3] == new_data_list[2] |
| 66 | + or database_data[4] == new_data_list[3] |
75 | 67 | ):
|
76 |
| - vrtbni_ekle_hata = QMessageBox() |
77 |
| - vrtbni_ekle_hata.setIcon(QMessageBox.Critical) |
78 |
| - vrtbni_ekle_hata.setText("The same record exists in the database!") |
79 |
| - vrtbni_ekle_hata.setWindowTitle("Warning") |
80 |
| - vrtbni_ekle_hata.exec_() |
| 68 | + database_add_error = QMessageBox() |
| 69 | + database_add_error.setIcon(QMessageBox.Critical) |
| 70 | + database_add_error.setText("The same record exists in the database!") |
| 71 | + database_add_error.setWindowTitle("Warning") |
| 72 | + database_add_error.exec_() |
81 | 73 | break
|
82 | 74 | else:
|
83 |
| - a = Metin_Anahtar_Tablo( |
84 |
| - Metin=gelen_metin, |
85 |
| - Lemma_metin=gelen_metin_lemma_str, |
86 |
| - Metin_pos=gelen_metin_lemma_pos_str, |
87 |
| - Anahtar=gelen_siralanmis_anahtar_kelimeler_str, |
| 75 | + cursor.execute( |
| 76 | + """INSERT INTO text_keyword_table (text,text_lemma,text_pos, keyword) VALUES |
| 77 | + (?, ?, ?, ?)""", |
| 78 | + new_data_list, |
88 | 79 | )
|
89 |
| - db.session.add(a) |
90 |
| - db.session.commit() |
91 |
| - vrtbni_ekle = QMessageBox() |
92 |
| - vrtbni_ekle.setIcon(QMessageBox.Information) |
93 |
| - vrtbni_ekle.setText("Added Record to Database") |
94 |
| - vrtbni_ekle.setWindowTitle("Process Completed") |
95 |
| - vrtbni_ekle.exec_() |
| 80 | + database_connection.commit() |
| 81 | + |
| 82 | + database_add = QMessageBox() |
| 83 | + database_add.setIcon(QMessageBox.Information) |
| 84 | + database_add.setText("Added Record to Database") |
| 85 | + database_add.setWindowTitle("Process Completed") |
| 86 | + database_add.exec_() |
96 | 87 |
|
97 | 88 |
|
98 | 89 | @app.route("/")
|
99 |
| -def Veritabani_Goruntule(): |
100 |
| - Veritabani_Goruntule = Metin_Anahtar_Tablo.query.paginate() |
101 |
| - return render_template( |
102 |
| - "veritabani_sayfasi.html", Veritabani_Goruntule=Veritabani_Goruntule |
103 |
| - ) |
| 90 | +def view_database(): |
| 91 | + view_database = text_keyword_table.query.paginate() |
| 92 | + return render_template("database_page.html", view_database=view_database) |
104 | 93 |
|
105 | 94 |
|
106 | 95 | app.secret_key = "super secret key"
|
107 | 96 |
|
108 | 97 |
|
109 | 98 | @app.route("/delete/<int:id>", methods=["POST", "GET"])
|
110 |
| -def Veritabani_SatirSil(id): |
| 99 | +def Database_DeleteRow(id): |
111 | 100 | try:
|
112 |
| - veri = Metin_Anahtar_Tablo.query.get(id) |
113 |
| - db.session.delete(veri) |
| 101 | + data = text_keyword_table.query.get(id) |
| 102 | + db.session.delete(data) |
114 | 103 | db.session.commit()
|
115 |
| - return redirect(url_for("Veritabani_Goruntule")) |
| 104 | + return redirect(url_for("view_database")) |
116 | 105 | except Exception as e:
|
117 | 106 | print("Hata: " + str(e))
|
118 | 107 |
|
119 | 108 |
|
120 | 109 | @app.errorhandler(InternalServerError)
|
121 | 110 | def handle_500(e):
|
122 |
| - original = getattr(e, "Hata", None) |
123 |
| - return render_template("hata_sayfasi.html", e=original) |
| 111 | + original = getattr(e, "Error", None) |
| 112 | + return render_template("error_page.html", e=original) |
124 | 113 |
|
125 | 114 |
|
126 |
| -def calistir(): |
| 115 | +def run(): |
127 | 116 | webbrowser.open_new_tab("http://127.0.0.1:5000/")
|
128 | 117 | app.run(debug=False)
|
129 | 118 |
|
130 | 119 |
|
131 |
| -def calistir_threading(): |
132 |
| - t1 = threading.Thread(target=calistir) |
| 120 | +def run_threading(): |
| 121 | + t1 = threading.Thread(target=run) |
133 | 122 | t1.start()
|
0 commit comments