Python POST-запрос с модулем запроса - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь создать сценарий Python, который будет заполнять некоторую информацию в базе данных. Для серверной части я использовал PHP, и когда я пытаюсь отправить информацию с помощью браузера, это работает. Но когда я пытаюсь сделать это, используя приведенный ниже скрипт Python, это не так.

import requests

url_insert = 'http://192.168.1.100/index.php'

data_insert = {'fullname':'spiderman',
    'ssn':'1234',
    'dept':'Security',
    'salary':10000,
    'homeaddress':'New York',
    'btn_save':'Save'}

req = requests.post(url_insert, data = data_insert)
print(req.text)

Ответ:

Connected Successfully.<br><html>
<head>
<title>RETRIEVE DATA</title>
</head>
<body>
<form action="data.php" method="POST">

    <div class="form-group">
        <label for="id">Full Name</label>
        <input type="text" name="fullname" id="fullname" value="" placeholder="FullName">
        <br>
        <br>
        <label for="id">Social Security Number</label>
        <input type="text" name="ssn" id="ssn" value="" placeholder="Social Security Number">
        <br>
        <br>
        <label for="id">Department</label>
        <input type="text" name="dept" id="dept" value="" placeholder="Department">
        <br>
        <br>
        <label for="id">Salary</label>
        <input type="text" name="salary" id="salary" value="" placeholder="Salary">
        <br>
        <br>
        <label for="id">Address</label>
        <input type="text" name="homeaddress" id="homeaddress" value="" placeholder="Address">
        <br>
        <br>
        <input type="submit" name="btn_save" value="Save">
    </div>
</form>
</body>
</html>

HTML КОД:

<html>
<head>
<title>RETRIEVE DATA</title>
</head>
<body>
<form action="data.php" method="POST">

    <div class="form-group">
        <label for="id">Full Name</label>
        <input type="text" name="fullname" id="fullname" value="" placeholder="FullName">
        <br>
        <br>
        <label for="id">Social Security Number</label>
        <input type="text" name="ssn" id="ssn" value="" placeholder="Social Security Number">
        <br>
        <br>
        <label for="id">Department</label>
        <input type="text" name="dept" id="dept" value="" placeholder="Department">
        <br>
        <br>
        <label for="id">Salary</label>
        <input type="text" name="salary" id="salary" value="" placeholder="Salary">
        <br>
        <br>
        <label for="id">Address</label>
        <input type="text" name="homeaddress" id="homeaddress" value="" placeholder="Address">
        <br>
        <br>
        <input type="submit" name="btn_save" value="Save">
    </div>
</form>
</body>
</html>

Я новичок в этом, и любая помощь будет высоко ценится.

1 Ответ

2 голосов
/ 18 апреля 2020

Я собираюсь работать, исходя из предположения, что когда вы успешно отправили информацию, используя браузер, она использовала форму , сгенерированную скриптом index.php.

То HTML формирует вводимые пользователем данные в имена полей, такие как ssn, и отправляет данные в сценарий data.php. Ваш сценарий Python также должен отправлять данные в data.php (однако, похоже, отсутствуют данные для fullname). Но вместо этого вы публикуете на index.php. Тогда я бы ожидал, что ответом будет форма HTML, с которой вы ранее успешно отправляли информацию. Это, безусловно, имеет место.

Просто измените index.php на data.php и укажите значение для fullname.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...