Wie sende ich Variablen von JavaScript nach Flask via jQuery?

Hallo,

ich bin in JavaScript/jQuery und auch Python/Flask noch ein ziemlicher Anfänger. Ich versuche gerade, einfach nur ein JSON-Objekt aus JavaScript in einem HTML-Template mit Flask anzuzeigen.

Hier mein Code:

Flask:

from flask import Flask,request, render_template

app = Flask(__name__)

@app.route("/")
def rofl():
  return render_template("test.html")

@app.route("/test", methods=['POST'])
def test():
  Namensliste = request.get_json(True)
  print(Namensliste)
  return render_template("rofl.html", Namensliste=Namensliste)

if __name__ == '__main__':
  app.run(port=5200)

test.html:

<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <form action="#" method="post">
    <button type="button" onclick="JSONTest()"> Send UserInfo</button>
  </form>
</body>

rofl.html:

<head>
  <meta charset="UTF-8">
  <title>Titel</title>
</head>
<body>
  NamensListe: {{Namensliste}}
</body>

JavaScript-Datei:

var myJason = {
  "name1" : "Jens",
  "name2" : "Josef",
  "name3" : "Johannes"
}

function JSONTest() {
  var MyJason= JSON.stringify(myJason);
  console.log(MyJason)
  $.ajax({
    type: 'POST',
    url: '/test',
    data: MyJason,
    success: function(data) {
      console.log(data, "Rückmeldung1");
  }});
}

Wie mein Code eigentlich funktionieren soll ist: Ich rufe die Route "/" auf, drücke auf den Button: "JSONTest()" und meine Funktion sendet via jQuery mein JSON-Objekt an "/test". Dort wird das Objekt in Namensliste gespeichert und rofl.html mit der Namensliste darin aufgerufen.

Ich weiß, dass hier wahrscheinlich viele Grundlagenfehler drin sind, aber ich habe wirklich ewig lang gegooglet und finde einfach nicht, wie man es richtig macht.

Danke schon einmal für jede Idee.

Computer, Technik, HTML, programmieren, JavaScript, Informatik, JQuery, Python, Flask
Technik in der Schule erklärt?

Es gibt so einige Dinge bei denen ich mich Frage, wieso sie nicht in der Schule gelehrt werden... Aber was mich besonders beschäftigt ist allgemeinwissen über Technik...

Man hört immernur "die Jugend, die wächst ja jetzt mit der Technik auf, die können das" und so ein Zeugs... Dabei merke ich (16 Jahre) selbst, dass es eigentlich 2 Gruppen von Jugendlichen gibt;

1. Die, die es selbst interessiert und die sich damit beschäftigen

2. Und die, die einfach keinen Spaß dran haben, glücklich sind wenn alles funktioniert und sich dann halt ein iPhone oder so kaufen um möglichst wenig einstellen zu müssen...

(Und ja natürlich gibt es auch andere, die eben einfach schnell lernen oder einfach intuitiv wissen, wie etwas zu bedienen ist... Aber darum geht es jetzt Mal nicht...)

Ich habe neulich selbst erlebt wie mehrere Leute in meinem alter es nicht geschafft haben einen Computer anzuschließen und einzurichten... Da hab ich mich gefragt, wieso sowas eigentlich nicht Mal in der Schule behandelt wird...

Natürlich nicht einfach als "so schließt man einen PC an"... Aber man könnte sich ja wenigstens Mal eine Stunde in der Woche mit Dingen aus dem echten Leben beschäftigen (statt Pflicht Sport, Kunst oder Religion 2 Stunden die Woche)...

Wieso werden einem nicht Mal Steckerstandards oder sowas erklärt... Für viele Leute sind das einfach irgendwelche Stecker...

Ich finde es einfach traurig zu sehen, wie junge Menschen TECHNIKER holen, damit der Fernseher angeschlossen wird (nicht, weil sie keine Zeit hätten, sondern einfach, weil sie nicht wissen wie man ihn EINRICHTET und anschließt (hinstellen und montieren Mal außer acht gelassen))

Computer, Smartphone, Allgemeinwissen, Schule, Technik, Elektronik, System, Alltag, Gaming, Alltagsprobleme, Arduino, Elektriker, Kritik, modern, Python, Schulsystem, Technologie, Raspberry Pi, Raspberry, Ausbildung und Studium, Arduino Uno
Mit Handy fake Wlan?

Hi,

In der Schule haben wir momentan das Thema Sicherheit im Internet. Nach den Sommerferien sollen wir etwas demonstrieren, was darstellt, wie groß die Gefahr im Netz ist.

Als Idee habe ich, dass ich mit dem Handy alleine ein Fake Wlan erstelle mit einer "Im Wlan anmelden" Seite. Die dürfte jedem bekannt sein... Sehr viele Menschen nutzen immer die gleichen Passwörter, weshalb es einfach ein Feld gibt wo man eine Email eingeben muss und eins für ein Passwort. Die Daten werden dann einfach gespeichert und schon werden viele in meine "Falle" getappt sein. Die Daten werde ich selbstverständlich danach löschen. Ich möchte keinen Stress mit denen. Ich halte diese Idee aber für recht sinnvoll für unser Thema.

Falls jemand eine bessere Idee in diese Richtung hat, gerne melden.

Mein Wissen:

Es gibt sowas ähnliches namens Fake access Point nur das das dann halt alles angreift, was man am Handy im Wlan macht. Bei mir soll jedoch kein Wlan freigegeben werden, da ich dafür einen wlan Stick vermutlich brauche.

Also es soll kein Wlan freigegeben werden. Kann man dann auch eine Nachricht ans Handy schicken, wie z.B. du wurden reingelegt?

Das war mit meinem Wissen.

Falls ich es brauche: Ich habe Kenntnisse in Python und ein sehr wenig in Thermux...

Konstruktives Feedback nehme ich sehr gerne an. Wenn ihr die Idee für Schwachsinn haltet lasst es mich gerne mit ner Begründung wissen.

Danke im Voraus

Internet, WLAN, Hacking, Python
Warum klickt der Webdriver auf ein anderes Element?

Hallo,

heute mal wieder die KrünKraft Website:

Mein Python Selenium Skript soll auf folgender Seite: GrünKraft Zufriedenheit (gruenkraft-zufriedenheit.de) den Button PayPal-Konto drücken. Danach sollte sich dann ein input Feld auftun, welches dann ausgefüllt werden soll.

<div class="column-left w-col w-col-5">
<label class="radio-button-field-2 left w-radio">
<input type="radio" id="paypal" name="payout" value="paypal" data-name="payout" required="" class="w-form-formradioinput radio-button w-radio-input">
<span for="paypal" class="radio-button-label-2 w-form-label">PayPal-Konto</span>
</label>
</div>

Den Code für das Inputfeld lasse ich jetzt mal weg, da es wirklich nur ein Input Feld ist.

Mein erster Code:

from selenium import webdriver
import time
driver = webdriver.Chrome('C:/Users/.../Desktop/Python/chromedriver.exe')
driver.maximize_window()
driver.get('https://gruenkraft-zufriedenheit.de/')
element = driver.find_element_by_id("paypal")
time.sleep(4)
element.click()

Wenn ich den Code der Website richtig verstanden habe, dann muss man doch zuerst auf den gestylten Radiobutton drücken, damit das Inputfeld erscheint. Führe ich dann aber den oben gezeigten Code aus, dann kommt die Meldung: "Other element would receive the click" und zwar anscheinend das Textfeld darunter. Warum ist das so?

Ein Code der funktioniert ist folgender:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains


driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://gruenkraft-zufriedenheit.de/")
wait = WebDriverWait(driver, 10)
driver.find_element_by_xpath("//span[text()='PayPal-Konto']").click()
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input[name='paypal-email-2']"))).send_keys('some-email@gmail.com')

Da wird gewartet, bis das Element sichtbar wird( Was heiß das dann schon wieder? ) und offensichtlich wird nicht der Radiobutton, sondern das span Element angeklickt. Warum funktioniert das dann?

Danke

PC, Computer, Browser, Technik, IT, programmieren, Informatik, Python
Warum ist der Code unreachable?
import os
import sys


# Wilkommensnachricht
print("Tic-Tac-Toe Python")


# Variablen
spiel_aktiv = True
spieler_aktuell = 'X'
versuche = 0


# Spielfeld als Liste erstellen
spielfeld = [" ",
             "1","2","3",
             "4","5","6",
             "7","8","9"]


# Spielfeld ausgeben
def spielfeld_ausgeben():
    print (spielfeld[1] + "|" + spielfeld[2] + "|" + spielfeld[3] )
    print (spielfeld[4] + "|" + spielfeld[5] + "|" + spielfeld[6] )
    print (spielfeld[7] + "|" + spielfeld[8] + "|" + spielfeld[9] )



# Die Spieler Eingabe
def spieler_eingabe():
    while True:
        global versuche
        spieler_zug = input("Auf welches Feld setzt du? ")
        spieler_zug = int(spieler_zug)
        spielfeld[spieler_zug] = spieler_aktuell
        versuche += 1




# Kontrolle ob und wer das Spiel gewonnen hat.
def kontrolle_gewonnen():
    if spielfeld[1] == spielfeld[2] == spielfeld[3]:
        print("Du hast gewonnen", spieler_aktuell)
    if spielfeld[4] == spielfeld[5] == spielfeld[6]:
        print("Du hast gewonnen", spieler_aktuell)
    if spielfeld[7] == spielfeld[8] == spielfeld[9]:
        print("Du hast gewonnen", spieler_aktuell)
    # Kontrolle auf Spalten
    if spielfeld[1] == spielfeld[4] == spielfeld[7]:
        print("Du hast gewonnen", spieler_aktuell)
    if spielfeld[2] == spielfeld[5] == spielfeld[8]:
        print("Du hast gewonnen", spieler_aktuell)
    if spielfeld[3] == spielfeld[6] == spielfeld[9]:
        print("Du hast gewonnen", spieler_aktuell)


    # Kontrolle auf Diagonalen
    if spielfeld[1] == spielfeld[5] == spielfeld[9]:
        print("Du hast gewonnen", spieler_aktuell)


    if spielfeld[7] == spielfeld[5] == spielfeld[3]:
        print("Du hast gewonnen", spieler_aktuell)  


# Kontrolle ob unentschieden
def kontrolle_auf_unentschieden():
    if versuche == 9:
        print("Unentschieden!")


# Den aktiven Spieler wechseln X/O
def spieler_change():
    global spieler_aktuell
    if spieler_aktuell == "X":
        spieler_aktuell = "O"
    else:
        spieler_aktuell = 'X'



def main():
  spielfeld_ausgeben()
  while True:
    spieler_eingabe()
    # Code unreachable
    spielfeld_ausgeben()
    kontrolle_gewonnen()
    kontrolle_auf_unentschieden()
    spieler_change()
    # Ende von Code unreacheable
main()
Computer, Schule, Technik, programmieren, Python, Technologie
Wieso löscht ein Discord.py Bot alle Nachrichten eines Users wenn er ihn bannt?

Heyho!

Ich programmieren jetzt schon seit längerem an einen Discord Bot in Python.
Das meiste bekomme ich alleine hin, nur jetzt brauche ich dringend Hilfe!

Wenn ich den Ban Befehl in Discord ausführen möchte, wird der User zwar gebannt, aber seine gesamten Nachrichten werden gelöscht, wie bei einem Softban?
Ich versteh das irgendwie nicht... Ich bin auf vielen Servern Moderator und wenn ich dort den Ban Befehl ausführe wird nur der User gebannt und nicht seine Nachrichten gelöscht...

Was mir noch gerade einfallen ist, dass wenn ich den Clear Befehl ausführe wird die Nachricht zum Beispiel "Clear 4" gesendet, aber bei den vier Nachrichten die gelöscht werden ist der Clear Befehl auch dabei.

Ban:

@bot.command(name='ban', pass_context=True)
@has_permissions(ban_members=True)
async def ban(ctx, member: discord.Member, *, reason=None):
    await member.ban(reason=reason)
    embed = discord.Embed(description='', color=0x27ae60)
    embed.add_field(name='__**Banned**__', value=f'Der User {member.name} wurde erfolgreich gebannt!\r'
                                                 f'Grund: **{reason}**', inline=True)
    embed.set_footer(text=f'Moderator: {ctx.author.name} • {ctx.author.id}', icon_url=ctx.author.avatar_url)
    await ctx.send(embed=embed)


@ban.error
async def ban_error(ctx, error):
    if isinstance(error, commands.MissingPermissions):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Du hast nicht die Berechtigungen dazu!', inline=True)
        await ctx.send(embed=embed)

    if isinstance(error, commands.MissingRequiredArgument):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Bitte überprüfe deine Eingabe **@User/ID** fehlt!', inline=True)
        await ctx.send(embed=embed)

Clear:

@bot.command(pass_context=True, name='clear')
@has_permissions(manage_messages=True)
async def clean(ctx, limit: int, deleted=None):
    await ctx.channel.purge(limit=limit)
    await ctx.send(format(len(deleted) - 1))


@clean.error
async def clean_error(ctx, error):
    if isinstance(error, commands.MissingPermissions):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Du hast nicht die Berechtigungen dazu!', inline=True)
        await ctx.send(embed=embed)

    if isinstance(error, commands.MissingRequiredArgument):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Bitte überprüfe deine Eingabe **Anzahl** fehlt!', inline=True)
        await ctx.send(embed=embed)

Hat jemand eine Ahnung was bei den beiden die Fehler sein könnten?

Danke schon mal im Voraus :)

LG Max

P.S. Sorry, dass das hier so lange wurde.

Computer, Technik, Python, Discord, Discord Bot, discord.py
Discord.py Bot Fehler beim Ban Command?

Guten Tag,

ich habe angefangen meine eigenen Discord Bot in Python zu programmieren. Clear, Kick, Userinfo, etc. schaffte ich. Der Ban Command ging zuerst auch. Ich hab dann versucht einen Softban Command hinzuzufügen und überraschenderweise ging er. Nur auf einmal war der normale Ban Command auch so wie ein Softban das er die Nachrichten von einem gebannten User löscht. Ich habe dann den Softban Command gelöscht, aber der normale Ban löschte noch immer die Nachrichten vom gebannten User. Ich habe dann auch denn Ban Command komplett neu geschrieben, aber er löschte noch immer die Nachrichten!
Ich hab keinen Plan was da los ist, kennt sich jemand damit aus und könnte mir weiter helfen, wie ich das beheben kann? :)

@bot.command(name='ban', pass_context=True)
@has_permissions(ban_members=True)
async def ban(ctx, member: discord.Member, *, reason=None):
    await member.ban(reason=reason)
    embed = discord.Embed(description='', color=0x27ae60)
    embed.add_field(name='__**Banned**__', value=f'Der User {member.name} wurde erfolgreich gebannt!\r'
                                                 f'Grund: **{reason}**', inline=True)
    embed.set_footer(text=f'Moderator: {ctx.author.name} • {ctx.author.id}', icon_url=ctx.author.avatar_url)
    await ctx.send(embed=embed)


@ban.error
async def ban_error(ctx, error):
    if isinstance(error, commands.MissingPermissions):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Du hast nicht die Berechtigungen dazu!', inline=True)
        await ctx.send(embed=embed)

programmieren, Bots, Python, Discord, Discord Bot, discord.py

Meistgelesene Beiträge zum Thema Python