221 lines
14 KiB
Plaintext
221 lines
14 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 122,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from flask import Flask, render_template, request, session\n",
|
||
"import random\n",
|
||
"import pickle\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 123,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"class KerdesObj():\n",
|
||
" def __init__(self, kerdes, jo_valaszok, rossz_valaszok):\n",
|
||
" self.kerdes = kerdes\n",
|
||
" self.jo_valaszok = []\n",
|
||
" self.valaszok = []\n",
|
||
" self.jo_valaszok = jo_valaszok\n",
|
||
" self.valaszok.extend(jo_valaszok)\n",
|
||
" self.valaszok.extend(rossz_valaszok)\n",
|
||
"\n",
|
||
" pass"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 124,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['Kérdés: Miért van külön Web.Debug.config és Web.Release.config fájl a webalkalmazásban?\\n', 'Azért, mert így külön definiálhatóak beállítások éles és demo környezetekhez.\\n', '!Azért, mert így külön definiálhatóak beállítások a Solution Configuration alatt választható build típusokhoz.\\n', 'Azért, mert így külön definiálhatóak változtatható a kinézet éles és demo környezetek között.\\n', '\\n', 'Kérdés: Web alkalmazásban adatbáziskapcsolat adatai hol tárolhatóak?\\n', 'ConfigurationSettings.cs fájlban\\n', '!Web.config fájlban\\n', 'Global.asax fájlban\\n', '\\n', 'Kérdés: Web alkalmazásban mit tartalmaz a Global.asax.cs fájl?\\n', '!Az egész alkalmazás működését érintő események bekövetkezésekor végrehajtandó kódot.\\n', 'Az egész alkalmazásból elérhető metódusokat.\\n', 'Globális változók definíciója\\n', '\\n', 'Kérdés: Web alkalmazásban mi a különbség valami.aspx, valami.aspx.cs és valami.aspx.designer.cs fájlok tartalma között?\\n', '!Az aspx tartalmazza a vezérlőelemek elhelyezkedését, típusát és alapvelő működését, az aspx.cs a hozzá tartozó code behind fájl (főként vezérlőelemek kezelésére vonatkozó kóddal), míg az aspx.designer.cs generált fájl, mely a vezérlők definícióját tartalmazza.\\n', 'Az .cs tartalmazza a vezérlőelemek elhelyezkedését, típusát és alapvelő működését, az aspx.designer.cs a hozzá tartozó code behind fájl (főként vezérlőelemek kezelésére vonatkozó kóddal), míg az aspx.cs generált fájl, mely a vezérlők definícióját tartalmazza.\\n', 'Az aspx.designer.cs tartalmazza a vezérlőelemek elhelyezkedését, típusát és alapvelő működését, az aspx.cs a hozzá tartozó code behind fájl (főként vezérlőelemek kezelésére vonatkozó kóddal), míg az aspx generált fájl, mely a vezérlők definícióját tartalmazza.\\n', '\\n', 'Kérdés: Web alkalmazásban mit tartalmaz a Site.master fájl?\\n', 'Az oldal kerete, kinézete és működése, melyet az .cs fájlok töltenek meg tartalommal\\n', '!Az oldal kerete, kinézete és működése, melyet az .aspx fájlok töltenek meg tartalommal\\n', 'Az egész alkalmazás működését érintő események bekövetkezésekor végrehajtandó kódot.\\n', '\\n', 'Kérdés: Web alkalmazásban lehet-e több site.master fájl?\\n', '!Igen, lehet\\n', 'Nem, nem lehet.\\n', '\\n', 'Kérdés: Web alkalmazásban egy aspx fájlban a <%: %> jel található, mit jelent?\\n', 'A végleges, browsernek küldött html tartalom előállítása során c# nyelven kell értelmezni a jelek közötti részt.\\n', '!A végleges, browsernek küldött html tartalomban jelenjen meg a jelek között található kifejezés értéke.\\n', '\\n', 'Kérdés: Web alkalmazásban egy aspx fájlban a <% %> jel található, mit jelent?\\n', '!A végleges, browsernek küldött html tartalom előállítása során c# nyelven kell értelmezni a jelek közötti részt.\\n', 'A végleges, browsernek küldött html tartalomban jelenjen meg a jelek között található kifejezés értéke.\\n', '\\n', 'Kérdés: Web alkalmazásban(Web forms) mit értünk a code behind fájl alatt?\\n', '!Azt a .aspx.cs fájlt, mely az aspx fájllal összhangban tartalmazza többek között az események kezelőit.\\n', 'Azt a POCO .cs fájlt, mely az aspx fájllal összhangban tartalmazza többek között az események kezelőit.\\n', 'Azt a .designer.cs fájlt, mely az aspx fájllal összhangban tartalmazza többek között az események kezelőit.\\n', '\\n', 'Kérdés: Web alkalmazásban (web forms) hogyan generáltatható egy vezérlőelem default eseménykezelője?\\n', '!Dupla kattintás a vezérlőelemen\\n', '!Properties panel, event gomb alapján a kiválasztott eseményen dupla kattintás\\n', 'Tools menü, events… és ott kiválasztható ’add default’\\n', '\\n', 'Kérdés: Web alkalmazásban (web forms) válassza ki, melyek a választható/használható vezérlő elemek?\\n', 'Clock\\n', '!Button\\n', '!Textbox\\n', '!DropdownList\\n', '!Checkbox\\n', '\\n', 'Kérdés: Web alkalmazásban (Web forms) mit tudhatunk meg az IsPostBack tulajdonsából?\\n', '!Értéke hamis, ha ez az első oldalbetöltés.\\n', 'Értéke hamis, ha az oldalbetöltés vezérlés hatására történt.\\n', '\\n', 'Kérdés: Web alkalmazásban DropdownList vezérlőhöz hogyan tudunk elemeket hozzáadni?\\n', '!Példány.Items kollekció manipulálásával\\n', 'Példány.Selection kollekció manipulálásával\\n', 'Példány.CustomElements kollekció manipulálásával\\n', '\\n', 'Kérdés: Web alkalmazásban (Web forms) egy Label típusú vezérlőelemen megjelenő szöveg melyik tulajdonsággal állítható be?\\n', 'Példány.Label\\n', 'Példány.Caption\\n', '!Példány.Text\\n', 'Példány.ShowText()\\n', '\\n', 'Kérdés: Web alkalmazásban (Web forms) egy Textbox típusú vezérlőelembe user által írt szöveg melyik tulajdonsággal olvasható ki?\\n', 'Példány.Label\\n', 'Példány.Caption\\n', 'Példány.Text\\n', 'Példány.ShowText()\\n', '\\n', 'Kérdés: Web alkalmazásban (Web forms) egy Textbox típusú melyik tulajdonsággal tiltható le (user nem szerkesztheti)?\\n', 'Disabled tulajdonság true értékre állításával\\n', '!Enabled tulajdonság false értékre állításával\\n', 'Visible tulajdonság false értékre állításával\\n', 'Opacity tulajdonság 0 értékre állításával\\n', '\\n', 'Kérdés: Web alkalmazásban (web forms) egy TextBox típusú vezérlőben hogyan tudunk több sornyi szöveget megjeleníteni?\\n', 'Nem lehetséges, alapvetően user input-ra való\\n', 'Text tulajdonságba sortöréssel ellátott szöveget helyezünk, EnableMultiLine tulajdonságot true értékre állítva\\n', '!Text tulajdonságba sortöréssel ellátott szöveget helyezünk, TextMode tulajdonságot MultiLine értékre állítva\\n', '\\n', 'Kérdés: MVC projekt esetén tipikusan hova futnak be a browser kérései?\\n', 'Controller osztályok ActionResult attribútummal ellátott metódusaihoz.\\n', '!Controller osztályok publikus metódusaihoz.\\n', 'Manager osztályok publikus metódusaihoz.\\n', '\\n', 'Kérdés: Mi határozza meg, hogy a browser címsorában lévő uri hova mutat az alkalmazásban?\\n', 'Controllerek publikus metódusaihoz futnak be.\\n', '!Routing szabályokkal kell megadni.\\n', 'A Contextben kell megadni.\\n', '\\n', 'Kérdés: MVC projekt esetén tipikusan mit értünk ViewModel alatt?\\n', '!Egy View alapját szolgáltató osztály, mely tipikusan tartalmaz számított mezőket és lekérdezett értékeket.\\n', 'Azon osztályok ezek, melyek az adatbázisban kerülnek perzisztálásra.\\n', 'Egy View alapját szolgáltató osztály, mely tipikusan nem tartalmaz számított mezőket és lekérdezett értékeket.\\n', '\\n', 'Kérdés: Mire utal az MVC minta?\\n', '!Model-View-Controller\\n', 'Model-ViewModel-Control\\n', '\\n', 'Kérdés: MVC Web alkalmazásban hogyan kerül egy View megjelenítésre?\\n', 'A megadott URL egy HTML oldalra mutat, melyet a browser megjelenít, ez a View.\\n', '!A megadott URL egy Controller metódusra mutat, mely View-t adhat vissza.\\n', 'ViewModel generálódik és jeleníti meg a browser.\\n', '\\n', 'Kérdés: MVC alkalmazás esetén mikor fog kiértékelődni a <%%> jelek közötti kifejezés?\\n', 'Csak az első megjelenítés során\\n', '!Az oldal minden elkészítése során\\n', 'Az oldal minden elkészítése során, ami nem IsPostBack\\n', '\\n', 'Kérdés: Web alkalmazásban (Web forms) tipikusan milyen típusú fájlok lehetnek az előre definiált Scripts mappában?\\n', 'SQL script fájlok\\n', '!Javascript fájlok\\n', '.cs fájlok\\n', '\\n', 'Kérdés: Web alkalmazásban (Web forms) tipikusan milyen típusú fájlok lehetnek az előre definiált Styles mappában?\\n', '!CSS fájlok\\n', 'Aspx fájlok\\n', 'Ascx fájlok\\n', '\\n', 'Kérdés: Web alkalmazásban (Web forms) tipikusan milyen típusú fájlok lehetnek az előre definiált App_Data mappában?\\n', 'Metadata fájlok (.cs)\\n', '!Helyi adatbázis fájlok\\n', 'Konfigurációs fájlok\\n']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"lines = []\n",
|
||
"\n",
|
||
"with open(\"kerdessor1.txt\", encoding=\"utf-8\") as file:\n",
|
||
" lines = file.readlines()\n",
|
||
"\n",
|
||
"# with open(\"kerdessor2.txt\", encoding=\"utf-8\") as file:\n",
|
||
"# lines.extend(file.readlines())\n",
|
||
"\n",
|
||
"print(lines)\n",
|
||
" \n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 125,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"kerdes = \"\"\n",
|
||
"jo_valaszok = []\n",
|
||
"rossz_valaszok = []\n",
|
||
"\n",
|
||
"Kollekcio = []\n",
|
||
"for i in lines:\n",
|
||
" if i.startswith(\"Kérdés: \") and kerdes != \"\":\n",
|
||
" temp = KerdesObj(kerdes, jo_valaszok, rossz_valaszok)\n",
|
||
" Kollekcio.append(temp)\n",
|
||
" \n",
|
||
" kerdes = \"\"\n",
|
||
" jo_valaszok = []\n",
|
||
" rossz_valaszok = []\n",
|
||
" \n",
|
||
" if i.startswith(\"Kérdés: \"):\n",
|
||
" kerdes = i.replace(\"Kérdés: \", \"\").strip()\n",
|
||
" elif kerdes != \"\" and i != '\\n' and i != '':\n",
|
||
" if i.startswith(\"!\"):\n",
|
||
" jo_valaszok.append(i.strip(\"!\").strip())\n",
|
||
" else:\n",
|
||
" rossz_valaszok.append(i.strip())\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 126,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"\n",
|
||
"def generate_question_frame(question_obj):\n",
|
||
" html = f'<div class=\"question\">\\n'\n",
|
||
" html += f' <input type=\"text\" name=\"aquestion\" value=\"' + question_obj.kerdes +'\" readonly style=\"font-size: 24px; font-weight: bold; border: none; background-color: transparent; text-align: center; color: #333; padding: 5px;\">\\n'\n",
|
||
" html += f' <div class=\"answers\">\\n'\n",
|
||
" for answer in question_obj.valaszok:\n",
|
||
" html += f' <div>\\n'\n",
|
||
" html += f' <input type=\"checkbox\" id=\"{answer}\" name=\"answer\" value=\"{answer}\">\\n'\n",
|
||
" html += f' <label for=\"{answer}\">{answer}</label>\\n'\n",
|
||
" html += f' </div>\\n'\n",
|
||
" html += f' </div>\\n'\n",
|
||
" html += f'</div>\\n'\n",
|
||
" return html"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 121,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" * Serving Flask app '__main__'\n",
|
||
" * Debug mode: off\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.\n",
|
||
" * Running on http://127.0.0.1:5000\n",
|
||
"Press CTRL+C to quit\n",
|
||
"127.0.0.1 - - [06/Jan/2025 19:49:29] \"GET / HTTP/1.1\" 200 -\n",
|
||
"127.0.0.1 - - [06/Jan/2025 19:49:30] \"POST / HTTP/1.1\" 200 -\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['Egy View alapját szolgáltató osztály, mely tipikusan tartalmaz számított mezőket és lekérdezett értékeket.']\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"127.0.0.1 - - [06/Jan/2025 19:49:33] \"POST / HTTP/1.1\" 200 -\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"None\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"127.0.0.1 - - [06/Jan/2025 19:49:49] \"POST / HTTP/1.1\" 200 -\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['Button', 'Textbox', 'DropdownList', 'Checkbox']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"\n",
|
||
"app = Flask(__name__)\n",
|
||
"\n",
|
||
"@app.route('/', methods=['GET', 'POST'])\n",
|
||
"def index():\n",
|
||
" user_answers = {}\n",
|
||
" selected_question = None\n",
|
||
"\n",
|
||
" if request.method == 'POST':\n",
|
||
" if 'check' in request.form:\n",
|
||
" selected_question = session.get('aquestion')\n",
|
||
" selected_answers = request.form.getlist('answer')\n",
|
||
" print(selected_question)\n",
|
||
" \n",
|
||
"\n",
|
||
" elif 'next' in request.form and Kollekcio:\n",
|
||
" selected_question = random.choice(Kollekcio)\n",
|
||
" html_frame = generate_question_frame(selected_question)\n",
|
||
" print(selected_question.jo_valaszok)\n",
|
||
" return render_template('index.html', question=selected_question, html_frame=html_frame)\n",
|
||
"\n",
|
||
" return render_template('index.html')\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"app.run()\n"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "venv",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.13.0"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|