Python 执行google搜索,然后将结果保存在django数据库中

Python 执行google搜索,然后将结果保存在django数据库中,python,django,sqlite,Python,Django,Sqlite,我正在学习Django教程,您能告诉我如何编辑cod以获得搜索结果并放入数据库吗?下面是我的代码,确保本教程中的其他代码我做得正确并且测试完成,非常感谢 我已经按照你的要求更新了代码。主页失败的结果也附在问题部分的底部。如果您有任何其他问题,请提问,我将能够与您分享 def __str__(self): """Returns a string representation of a message."""

我正在学习Django教程,您能告诉我如何编辑cod以获得搜索结果并放入数据库吗?下面是我的代码,确保本教程中的其他代码我做得正确并且测试完成,非常感谢

我已经按照你的要求更新了代码。主页失败的结果也附在问题部分的底部。如果您有任何其他问题,请提问,我将能够与您分享

def __str__(self):
        """Returns a string representation of a message."""
        date = timezone.localtime(self.log_date)
        return f"'{self.message}' logged on {date.strftime('%A, %d %B, %Y at %X')}"

class HomeListView(ListView):
    """Renders the home page, with a list of all messages."""
    model = LogMessage

    def get_context_data(self, **kwargs):
        context = super(HomeListView, self).get_context_data(**kwargs)
        return context
        
def log_message(request):
    form = LogMessageForm(request.POST or None)

    if request.method == "POST":
        if form.is_valid():  
            query = form.save(commit=False)
            for j in search(query, tbs='qdr:h', num=10, start=0, stop=10, pause=2.0):
                message = LogMessage(log_date = datetime.now(), message =j)
                message.save()
        return redirect("home")
    else:
        return render(request, "hello/log_message.html", {"form": form})
---主页失败信息

TypeError at /log/
quote_from_bytes() expected bytes
Request Method: POST
Request URL:    http://127.0.0.1:8000/log/
Django Version: 3.1.5
Exception Type: TypeError
Exception Value:    
quote_from_bytes() expected bytes
Exception Location: C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\parse.py, line 866, in quote_from_bytes
Python Executable:  C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\python.exe
Python Version: 3.8.7
Python Path:    
['D:\\Apps\\07.1\\hello_django',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32\\python38.zip',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32\\DLLs',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32\\lib',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32',
 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python38\\site-packages',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32\\lib\\site-packages']
Server time:    Thu, 07 Jan 2021 14:38:11 +0000
Traceback Switch to copy-and-paste view
C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\exception.py, line 47, in inner
                response = get_response(request) …
▶ Local vars
C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py, line 181, in _get_response
                response = wrapped_callback(request, *callback_args, **callback_kwargs) …
▶ Local vars
D:\Apps\07.1\hello_django\hello\views.py, line 34, in log_message
            for j in search(query, tbs='qdr:h', num=10, start=0, stop=10, pause=2.0): …
▼ Local vars
Variable    Value
form    
<LogMessageForm bound=True, valid=True, fields=(message)>
query   
<LogMessage: '333321212121121221' logged on Thursday, 07 January, 2021 at 14:38:11>
request 
<WSGIRequest: POST '/log/'>   
TypeError位于/log/
quote_from_bytes()应为字节
申请方式:邮寄
请求URL:http://127.0.0.1:8000/log/
Django版本:3.1.5
异常类型:TypeError
异常值:
quote_from_bytes()应为字节
异常位置:C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\parse.py,第866行,在quote_from_bytes中
Python可执行文件:C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\Python.exe
Python版本:3.8.7
Python路径:
['D:\\Apps\\07.1\\hello\u django',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32\\Python38.zip',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32\\DLLs',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32\\lib',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32',
'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python38\\site packages',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38-32\\lib\\site packages']
服务器时间:2021年1月7日星期四14:38:11+0000
回溯切换到复制和粘贴视图
C:\Users\Administrator\AppData\Local\Programs\Python38-32\lib\site packages\django\core\handlers\exception.py,第47行,在内部
响应=获取响应(请求)…
▶ 局部变量
C:\Users\Administrator\AppData\Local\Programs\Python38-32\lib\site packages\django\core\handlers\base.py,第181行,在\u get\u响应中
响应=包装的回调(请求,*回调参数,**回调参数)…
▶ 局部变量
D:\Apps\07.1\hello\u django\hello\views.py,第34行,在日志消息中
对于搜索中的j(查询,tbs='qdr:h',num=10,start=0,stop=10,pause=2.0):…
▼ 局部变量
可变值
形式
查询
要求
请尝试以下代码:

for j in search(query, tbs='qdr:h', num=10, start=0, stop=10, pause=2.0):
            message = LogMessage(log_date = datetime.now(), message =j)
            message.save()

我们可以查看models.pyfrom django.db import models from django.utils import timezone class LogMessage(models.Model)中LogMessage的定义吗?LogMessage=models.CharField(max_length=300)log_date=models.datetime字段(“date logged”)def_ustr_u(self):“返回消息的字符串表示形式。”date=timezone.localtime(self.log_date)返回f“{self.message}”登录{date.strftime(“%A,%d%B,%Y at%X”)}”Nononooo不在评论中发布它。编辑你的问题。没有人能读到亲爱的导游,我确实更新了问题,请帮忙建议?感谢您的指导,请在查看您的建议后查看我的编辑问题