Получение ошибки при вставке значений из графического интерфейса tkinter в базу данных

Access-Control-Allow-Origin является заголовком CORS (перекрестный источник ресурсов) .

Когда сайт A пытается получить контент с сайта B, сайт B может отправить Access-Control-Allow-Origin, чтобы сообщить браузеру, что содержимое этой страницы доступно для определенного источника. (Источник origin - это домен , плюс схема и номер порта .) По умолчанию страницы сайта B недоступны для любого другого источника ; с помощью заголовка Access-Control-Allow-Origin открывается дверь для доступа с перекрестным доступом по конкретному запросу.

Для каждого ресурса / страницы, которую сайт B хочет сделать доступным для сайта A, сайт B должен обслуживать свои страницы с помощью Заголовок ответа:

Access-Control-Allow-Origin: http://siteA.com

Современные браузеры не будут блокировать междоменные запросы напрямую. Если сайт A запрашивает страницу с сайта B, браузер действительно будет запрашивать запрашиваемую страницу на сетевом уровне и проверять, соответствуют ли заголовки ответов Site A как разрешенный домен реквестера. Если сайт B не указал, что сайту A разрешен доступ к этой странице, браузер инициирует событие XMLHttpRequest error и отказывает данные ответа запрашивающему JavaScript-коду.

простые запросы

Что происходит на сетевом уровне, может быть слегка более сложным, чем описано выше. Если запрос является «непростым» запросом , браузер сначала отправляет запрос OPTIONS без предпросмотра, чтобы убедиться, что сервер примет запрос. Запрос не прост, если либо (или оба):

  • , используя HTTP-глагол, отличный от GET или POST (например, PUT, DELETE)
  • , используя непростой запрос заголовки; единственными простыми заголовками запросов являются: Accept Accept-Language Content-Language Content-Type (это просто, когда его значение равно application/x-www-form-urlencoded, multipart/form-data или text/plain)

Если сервер отвечает перед предполетью OPTIONS соответствующими заголовками ответа (Access-Control-Allow-Headers для непростых заголовков, Access-Control-Allow-Methods для непростых глаголов), которые соответствуют непростым глаголам и / или непростым заголовкам, тогда браузер отправляет фактический запрос.

Предположим, что сайт A хочет отправить запрос PUT для /somePage с непростым значением Content-Type в application/json, браузер сначала отправит запрос предварительной проверки :

OPTIONS /somePage HTTP/1.1
Origin: http://siteA.com
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: Content-Type

Обратите внимание, что Access-Control-Request-Method и Access-Control-Request-Headers автоматически добавляются браузером; вам не нужно добавлять их. Этот предварительный предлог OPTIONS получает успешные заголовки ответов:

Access-Control-Allow-Origin: http://siteA.com
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Headers: Content-Type

При отправке фактического запроса (после выполнения предполета) поведение идентично тому, как обрабатывается простой запрос. Другими словами, непростой запрос, чей предполетный период успешный, обрабатывается так же, как и простой запрос (т. Е. Сервер еще должен отправить Access-Control-Allow-Origin снова для фактического ответа).

Браузеры отправляют фактический запрос:

PUT /somePage HTTP/1.1
Origin: http://siteA.com
Content-Type: application/json

{ "myRequestContent": "JSON is so great" }

И сервер отправляет обратно Access-Control-Allow-Origin, как это было бы для простого запроса:

Access-Control-Allow-Origin: http://siteA.com

См. Понимание XMLHttpRequest над CORS для получения дополнительной информации о непростых запросах.

-3
задан Bryan Oakley 2 April 2019 в 18:13
поделиться

1 ответ

Судя по тону вашего вопроса, у вас возникают проблемы с доступом к тому, что находится внутри текстового поля.

Ответом будет метод .get(). Это в основном позволяет вам получить доступ к тому, что находится внутри текстового поля.

Вот простой код:

from tkinter import *
window = Tk()
window.title("Example")
window.geometry("500x500")
window.configure(bg = "sky blue")
e = Entry(window, bg = "blue", fg = "orange")
e.pack()
def com1():
    acess = e.get()
    print(acess)
button1 = Button(window, text = "enter", command = com1)
button1.pack()

e.get() - это то, что берет вещи внутри виджета Entry.

Вы сохраняете его в переменной, а затем используете переменную для чего хотите.

Надеюсь, это поможет !!!

0
ответ дан 2 April 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: