首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Django+channels+Python3.7时提交Form表单: 400 Bad Request问题

一开始的Python版本是3.6,开发部署都没问题,功能也没问题。在部署后想到,不如试试3.7。虽然channels的包声明上还没说能够兼容3.7。 安装3.7的过程也不顺利,这篇暂且按下不表。...单说问题表现吧,或许你也可能遇到:通过Ajax发送的post请求,后端可以正常处理,但是通过Form表单提交的POST请求一律400 Bad Request。...按照往常的部署方式:Gunicorn + gthread + Django WSGI,要调试这样的问题并不困难,因为一直在用,所以偶尔会看下源码。...但问题是我使用了channels,所以部署的方式就变为了:Daphne + Django ASGI了。...总结 宽泛的异常捕获,并且不做任何输出,简直就是大坑。 尝鲜的情况下,最好都用新的版本,避免出现上面的问题。 channels跟Django结合的很好,用起来顺手,调试起来麻烦。

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    form表单提交controller层接收到的值为乱码的问题

    今天遇到个中文乱码问题,大体情况是这样的:前台有一个form表单,其中有几个input的控件,值是带中文的,form表单只设置了id='form1' method='post' action='xxx...' 调用submit方法提交,后台是springMVC的Controller接收请求,结果得到的参数值都是乱码。...解决方法:为form表单再设置一个属性 enctype=‘mutipart/form-data’ ,此时后台接收到的值就没有乱码了。.../form-data’是告诉浏览器使用二进制(就是字节流)的形式发送请求,因为直接使用了二进制,所以不存在字符编码不统一的问题,也就规避了中文乱码的问题。   ...如有不准确的地方,请各位大牛给予更详细的分析。

    3.6K20

    人生苦短,我用PyCharm

    使用以上任一方式运行该程序,窗口底部会出现终端面板(Terminal pane),显示你的代码输出结果: ? 你可以玩一下这个游戏,看看自己能否猜中数字。(专业建议:从 50 开始猜。)...打开下拉列表,选择 Project Interpreter: ? 从下拉列表中选择 virtualenv。如果没有要选择的项,则点击下拉列表右方的设置按钮选择 Add…。...在该窗口中,你可以: 选择要提交的文件 写下提交信息 在提交前执行各项检查 查看更改 点击右下角 Commit 按钮旁边的箭头,选择 Commit and Push…,从而一次性完成提交和 push。...当一个人对你正在处理的文件提交更改时,你们二人更改了同一行导致更改重叠,这时 VCS 无法决定选择你的更改还是队友的更改。那么你可以使用以下箭头和符号来解决这个问题: ?...Django 支持 Django 是最流行和最受喜爱的 Python web 框架,PyCharm 对 Django 提供广泛的支持。

    2.6K10

    Python 最强编辑器详细使用指南!

    使用以上任一方式运行该程序,窗口底部会出现终端面板(Terminal pane),显示你的代码输出结果: ? 你可以玩一下这个游戏,看看自己能否猜中数字。(专业建议:从 50 开始猜。)...打开下拉列表,选择 Project Interpreter: ? 从下拉列表中选择 virtualenv。如果没有要选择的项,则点击下拉列表右方的设置按钮选择 Add…。...在该窗口中,你可以: 选择要提交的文件 写下提交信息 在提交前执行各项检查 查看更改 点击右下角 Commit 按钮旁边的箭头,选择 Commit and Push…,从而一次性完成提交和 push。...当一个人对你正在处理的文件提交更改时,你们二人更改了同一行导致更改重叠,这时 VCS 无法决定选择你的更改还是队友的更改。那么你可以使用以下箭头和符号来解决这个问题: ?...Django 支持 Django 是最流行和最受喜爱的 Python web 框架,PyCharm 对 Django 提供广泛的支持。

    2.4K01

    人生苦短,我用PyCharm

    使用以上任一方式运行该程序,窗口底部会出现终端面板(Terminal pane),显示你的代码输出结果: ? 你可以玩一下这个游戏,看看自己能否猜中数字。(专业建议:从 50 开始猜。)...打开下拉列表,选择 Project Interpreter: ? 从下拉列表中选择 virtualenv。如果没有要选择的项,则点击下拉列表右方的设置按钮选择 Add…。...在该窗口中,你可以: 选择要提交的文件 写下提交信息 在提交前执行各项检查 查看更改 点击右下角 Commit 按钮旁边的箭头,选择 Commit and Push…,从而一次性完成提交和 push。...当一个人对你正在处理的文件提交更改时,你们二人更改了同一行导致更改重叠,这时 VCS 无法决定选择你的更改还是队友的更改。那么你可以使用以下箭头和符号来解决这个问题: ?...Django 支持 Django 是最流行和最受喜爱的 Python web 框架,PyCharm 对 Django 提供广泛的支持。

    1.9K31

    Python 最强编辑器详细使用指南

    打开下拉列表,选择 Project Interpreter: 从下拉列表中选择 virtualenv。如果没有要选择的项,则点击下拉列表右方的设置按钮选择 Add…。...你将看到如下窗口: 在该窗口中,你可以: 选择要提交的文件 写下提交信息 在提交前执行各项检查 查看更改 点击右下角 Commit 按钮旁边的箭头,选择 Commit and Push…,从而一次性完成提交和...那么你可以使用以下箭头和符号来解决这个问题: 看起来很奇怪,我们很难分辨应该删除哪些更改、保留哪些更改。不要怕,PyCharm 来了!它可以用更好、更简洁的方法解决冲突。...首先,在所选 Terminal app 中键入 pip install flake8,从而在虚拟环境中安装 Flake8。...Django 支持 Django 是最流行和最受喜爱的 Python web 框架,PyCharm 对 Django 提供广泛的支持。

    1.9K00

    人生苦短,我用PyCharm

    使用以上任一方式运行该程序,窗口底部会出现终端面板(Terminal pane),显示你的代码输出结果: ? 你可以玩一下这个游戏,看看自己能否猜中数字。(专业建议:从 50 开始猜。)...打开下拉列表,选择 Project Interpreter: ? 从下拉列表中选择 virtualenv。如果没有要选择的项,则点击下拉列表右方的设置按钮选择 Add…。...在该窗口中,你可以: 选择要提交的文件 写下提交信息 在提交前执行各项检查 查看更改 点击右下角 Commit 按钮旁边的箭头,选择 Commit and Push…,从而一次性完成提交和 push。...当一个人对你正在处理的文件提交更改时,你们二人更改了同一行导致更改重叠,这时 VCS 无法决定选择你的更改还是队友的更改。那么你可以使用以下箭头和符号来解决这个问题: ?...Django 支持 Django 是最流行和最受喜爱的 Python web 框架,PyCharm 对 Django 提供广泛的支持。

    2.6K30

    人生苦短,我用PyCharm

    使用以上任一方式运行该程序,窗口底部会出现终端面板(Terminal pane),显示你的代码输出结果: ? 你可以玩一下这个游戏,看看自己能否猜中数字。(专业建议:从 50 开始猜。)...打开下拉列表,选择 Project Interpreter: ? 从下拉列表中选择 virtualenv。如果没有要选择的项,则点击下拉列表右方的设置按钮选择 Add…。...在该窗口中,你可以: 选择要提交的文件 写下提交信息 在提交前执行各项检查 查看更改 点击右下角 Commit 按钮旁边的箭头,选择 Commit and Push…,从而一次性完成提交和 push。...当一个人对你正在处理的文件提交更改时,你们二人更改了同一行导致更改重叠,这时 VCS 无法决定选择你的更改还是队友的更改。那么你可以使用以下箭头和符号来解决这个问题: ?...Django 支持 Django 是最流行和最受喜爱的 Python web 框架,PyCharm 对 Django 提供广泛的支持。

    1.8K20

    Python 最强 IDE 详细使用指南!

    使用以上任一方式运行该程序,窗口底部会出现终端面板(Terminal pane),显示你的代码输出结果: ? 你可以玩一下这个游戏,看看自己能否猜中数字。(专业建议:从 50 开始猜。)...打开下拉列表,选择 Project Interpreter: ? 从下拉列表中选择 virtualenv。如果没有要选择的项,则点击下拉列表右方的设置按钮选择 Add…。...在该窗口中,你可以: 选择要提交的文件 写下提交信息 在提交前执行各项检查 查看更改 点击右下角 Commit 按钮旁边的箭头,选择 Commit and Push…,从而一次性完成提交和 push。...当一个人对你正在处理的文件提交更改时,你们二人更改了同一行导致更改重叠,这时 VCS 无法决定选择你的更改还是队友的更改。那么你可以使用以下箭头和符号来解决这个问题: ?...Django 支持 Django 是最流行和最受喜爱的 Python web 框架,PyCharm 对 Django 提供广泛的支持。

    2.5K20

    Python—关于Pandas的缺失值问题(国内唯一)

    获取文中的CSV文件用于代码编程,请看文末,关注我,致力打造别人口中的公主 在本文中,我们将使用Python的Pandas库逐步完成许多不同的数据清理任务。...让我们看看Pandas如何处理这些问题 # 查看ST_NUM列 print df['ST_NUM'] print df['ST_NUM'].isnull() # 查看ST_NUM列 Out: 0...不幸的是,其他类型未被识别。 如果有多个用户手动输入数据,则这是一个常见问题。也许我喜欢使用“n / a”,但是其他人喜欢使用“ na”。 检测这些各种格式的一种简单方法是将它们放在列表中。...为了解决这个问题,我们使用异常处理来识别这些错误,并继续进行下去。 代码的另一个重要部分是.loc方法。这是用于修改现有条目的首选Pandas方法。有关此的更多信息,请查看Pandas文档。...现在,我们已经研究了检测缺失值的不同方法,下面将概述和替换它们。 总结缺失值 清除缺失的值后,我们可能要对它们进行汇总。例如,我们可能要查看每个功能的缺失值总数。

    3.2K40

    python3安装mysqlclient,解决django使用pymysql报错的问题

    1.起因 在django中为了使用MySQL,一般是在项目目录下的__init__.py中添加 import pymysql pymysql.install_as_MySQLdb() # 使用pymysql...__version__) django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required; you...发生上面的错误,是因为django版本>=2.2 , pymysql的mysqlclient版本是0.9.3,版本过低,所以出现了上面的情况,解决办法如下 2....不再使用pymysql,安装mysqlclient python3环境下直接pip install mysqlclient,一般会报错 解决办法,如下 在pip安装mysqlclient之前,先根据自己的环境做如下准备...windows环境 访问网站https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient,下载与python版本相对应的mysqlclient版本,再使用

    7.2K30

    Python 最强编辑器详细使用教程

    使用以上任一方式运行该程序,窗口底部会出现终端面板(Terminal pane),显示你的代码输出结果: ? 你可以玩一下这个游戏,看看自己能否猜中数字。(专业建议:从 50 开始猜。)...打开下拉列表,选择 Project Interpreter: ? 从下拉列表中选择 virtualenv。如果没有要选择的项,则点击下拉列表右方的设置按钮选择 Add…。...在该窗口中,你可以: 选择要提交的文件 写下提交信息 在提交前执行各项检查 查看更改 点击右下角 Commit 按钮旁边的箭头,选择 Commit and Push…,从而一次性完成提交和 push。...当一个人对你正在处理的文件提交更改时,你们二人更改了同一行导致更改重叠,这时 VCS 无法决定选择你的更改还是队友的更改。那么你可以使用以下箭头和符号来解决这个问题: ?...Django 支持 Django 是最流行和最受喜爱的 Python web 框架,PyCharm 对 Django 提供广泛的支持。

    2.1K20

    Django教程(三)- Django表单Form1.Form 基本使用2.Form中字段及插件3.通过Django表单Form来完成需求4.自定义验证验证规则

    1.Form 基本使用 django中的Form组件有以下几个功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 2.Form中字段及插件...NullBooleanSelect # 非空布尔值下拉框 SelectMultiple # 多选下拉框 RadioSelect # 单选框 CheckboxSelectMultiple # 多选...= "POST": obj = forms.MyForm(request.POST, request.FILES) # 将post提交过来的数据作为参数传递给自定义的Form类...,views.indexPage,), ] 6.把我们新定义的app加到settings.py中的INSTALL_APPS中和urls中,详情见Django教程(一)- Django视图与网址 效果展示...,注意的是各序列的长度必须一样,否则报错: >>> def add(x,y):return x+y ... >>> map(add,'zhoujy','Python') ['zP', 'hy', 'ot

    10.2K40

    Django-form表单

    注:Django 原生支持一个简单易用的跨站请求伪造的防护。当提交一个启用CSRF 防护的POST 表单时,你必须使用上面例子中的csrf_token 模板标签。...当渲染给用户时,它将为空或包含默认的值。 绑定的表单具有提交的数据,因此可以用来检验数据是否合法。如果渲染一个不合法的绑定的表单,它将包含内联的错误信息,告诉用户如何纠正数据。...如果直接设置此字段,更新操作后,下拉框并不会更新,需要重启django程序,因为直接在类中定义的静态字段,只会执行一次,即查询显示操作,在编译时就已经执行完毕, 为了让下拉框的数据实时同步,我们需要重写构造方法...这些数据已经为你转换好为Python 的类型。 注:此时,你依然可以从request.POST 中直接访问到未验证的数据,但是访问验证后的数据更好一些。...在上面的联系表单示例中,is_married将是一个布尔值。类似地,IntegerField 和FloatField 字段分别将值转换为Python 的int 和float。

    3.9K70

    Django教程(二)- Django视图与网址进阶1. HTML表单2.CSRF3.代码操作

    表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等等。...CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。...在返回的 HTTP 响应的 cookie 里,django 会为你添加一个 csrftoken 字段,其值为一个自动生成的 token 在所有的 POST 表单时,必须包含一个 csrfmiddlewaretoken...字段 (只需要在模板里加一个 tag, django 就会自动帮你生成,见下面) 在处理 POST 请求之前,django 会验证这个请求的 cookie 里的 csrftoken 字段的值和提交的表单里的...在所有 ajax POST 请求里,添加一个 X-CSRFTOKEN header,其值为 cookie 里的 csrftoken 的值 Django 里如何使用 CSRF 防护: 首先,最基本的原则是

    4.3K40
    领券