下面我将为你详细讲解“Python requests用法和django后台处理详解”的完整攻略,同时给出两个示例来说明。
Python requests用法
Python requests是一个流行的HTTP库,它可以用于向Web服务器发送HTTP请求,然后从Web服务器接收HTTP响应。以下是Python requests的一些常见用法:
发送HTTP GET请求
import requests
response = requests.get('https://www.example.com')
print(response.text)
这段代码向指定的URL地址发送一个HTTP GET请求,并打印响应的文本内容。
发送HTTP POST请求
import requests
data = {'name': 'John', 'age': 30}
response = requests.post('https://www.example.com', data=data)
print(response.text)
这段代码向指定的URL地址发送一个HTTP POST请求,并传递一个包含姓名和年龄的数据字典。
发送HTTP PUT请求
import requests
data = {'name': 'John', 'age': 30}
response = requests.put('https://www.example.com', data=data)
print(response.text)
这段代码向指定的URL地址发送一个HTTP PUT请求,并更新一个包含姓名和年龄的数据字典。
发送HTTP DELETE请求
import requests
response = requests.delete('https://www.example.com')
print(response.text)
这段代码向指定的URL地址发送一个HTTP DELETE请求,并删除服务器上的资源。
修改HTTP请求头
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get('https://www.example.com', headers=headers)
print(response.text)
这段代码向指定的URL地址发送一个HTTP GET请求,并使用指定的User-Agent头。
Django后台处理详解
Django是一个流行的Python Web框架,它可以用于开发高质量的Web应用程序。以下是Django后台处理的一些常见用法:
创建数据库模型
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
def __str__(self):
return self.name
这段代码创建了一个名为Person的模型,它有一个姓名和一个年龄字段。
创建数据表
python manage.py makemigrations
python manage.py migrate
这段代码可以创建数据库表格,同时还可以迁移数据库更新。
操作数据库
from myapp.models import Person
# 添加数据
person = Person.objects.create(name='John', age=30)
# 查找数据
person = Person.objects.get(id=1)
# 更新数据
person.age = 40
person.save()
# 删除数据
person.delete()
这段代码演示了如何添加、查找、更新和删除数据库中的数据。
创建后台管理
from django.contrib import admin
from myapp.models import Person
admin.site.register(Person)
这段代码可以创建后台管理界面,方便管理数据。
定义路由
from django.urls import path
from myapp.views import PersonListView, PersonCreateView, PersonUpdateView, PersonDeleteView
urlpatterns = [
path('', PersonListView.as_view(), name='person_list'),
path('create/', PersonCreateView.as_view(), name='person_create'),
path('<int:pk>/update/', PersonUpdateView.as_view(), name='person_update'),
path('<int:pk>/delete/', PersonDeleteView.as_view(), name='person_delete'),
]
这段代码定义了用于浏览、创建、更新和删除Person模型实例的路由。
示例说明
示例1:使用Python requests向REST API发送HTTP请求,并获取JSON响应
import requests
url = 'https://jsonplaceholder.typicode.com/posts/1'
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print(data['title'])
这个示例向一个REST API的URL地址发送HTTP请求,并获取JSON格式的响应。如果HTTP状态码为200,则输出获取的数据的title字段。
示例2:使用Django后台管理创建、查找、更新和删除数据库条目
from django.test import TestCase, Client
from django.urls import reverse
from myapp.models import Person
class PersonTestCase(TestCase):
def setUp(self):
self.client = Client()
self.person = Person.objects.create(name='John', age=30)
def test_person_create(self):
url = reverse('person_create')
response = self.client.post(url, {'name': 'Emily', 'age': 25})
self.assertEqual(response.status_code, 302)
self.assertEqual(Person.objects.count(), 2)
def test_person_detail(self):
url = reverse('person_detail', kwargs={'pk': self.person.pk})
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
def test_person_update(self):
url = reverse('person_update', kwargs={'pk': self.person.pk})
response = self.client.post(url, {'name': 'John Smith', 'age': 40})
self.assertEqual(response.status_code, 302)
self.person.refresh_from_db()
self.assertEqual(self.person.age, 40)
def test_person_delete(self):
url = reverse('person_delete', kwargs={'pk': self.person.pk})
response = self.client.post(url)
self.assertEqual(response.status_code, 302)
self.assertEqual(Person.objects.count(), 0)
这个示例是一个Django测试用例,它演示了如何使用Django后台管理创建、查找、更新和删除数据库条目。在setUp方法中创建了一个Person实例,然后在test_*方法中使用Client对象向访问URL发送HTTP请求,以模拟浏览器行为,最后使用各种断言来测试结果是否符合预期。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python requests用法和django后台处理详解 - Python技术站