我的请求是QueryDict类型,我想将它转换为JSON对象或字符串,以便我可以针对JSON模式验证它.其中一个JSON字段包含一个列表,如下所示:
{
"message": "Hello!",
"people": ["Aaron", "Randy", "Chris", "Andrew"]
}
Run Code Online (Sandbox Code Playgroud)
当我使用json.dumps()将其转换为字符串时,请获取以下内容:
'{"message": "Hello!", "people": "Andrew"}'
Run Code Online (Sandbox Code Playgroud)
处理这种情况的最佳方法是什么?
我的Django应用程序(nginx,uwsgi堆栈)通过调用datetime.now()来请求当天:
def get_drinks(request, drink_type):
current_day = datetime.today().strftime("%w")
current_day_string = datetime.today().strftime("%A")
Run Code Online (Sandbox Code Playgroud)
我在我的网站上显示当天.由于一些奇怪的原因,它将在周五返回,而不是周四(今天).我的服务器时间是:
server:~$ date
Thu Apr 9 18:51:02 PDT 2015
Run Code Online (Sandbox Code Playgroud)
当我在python shell中运行datetime.now()时,我也会得到星期四:
>>> import datetime
>>> datetime.datetime.today().strftime("%A")
'Thursday'
Run Code Online (Sandbox Code Playgroud)
这是什么问题?
**我正在使用Django 1.8.此版本的Django中的模板功能已更改.阅读更多内容将模板升级到Django 1.8**
这让我感到困扰,因为我遇到过这个问题并为我的其他项目修好了,但是我不能为我的生活找到解决这个问题的方法.我已经经历了无数的stackoverflow问题,并尝试使用我没有运气提供的答案来解决问题.这是我收到的错误消息:
Exception Type: TemplateDoesNotExist
Exception Value:
index.html
Exception Location: /Library/Python/2.7/site-packages/django/template/loader.py in get_template, line 46
Python Executable: /usr/bin/python
Python Version: 2.7.6
Python Path:
['/Users/User1/Documents/PyCharmProjects/Project1',
Run Code Online (Sandbox Code Playgroud)
它似乎是在错误的文件夹中查找,它应该根据我的settings.py文件在Project1/templates下查找:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_PATH = os.path.join(BASE_DIR, '/templates/')
TEMPLATE_DIRS = (
TEMPLATE_PATH,
)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
#'django.template.loaders.eggs.load_template_source',
)
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions', …Run Code Online (Sandbox Code Playgroud) 我正在使用keydown / keyup事件,该事件调用一个javascript函数,该函数将输入框的值打印到控制台(以及事件的currentTarget字段的值),但我注意到这是一个字符晚了。例如,如果我在输入框中键入hello,则我只会在控制台中看到hell,直到按下另一个键才看到hello,即使此时我已经键入hello1。为什么是这样?而且周围有吗?
这是HTML:
<input type="text" class="form__field" v-model="keywords" v-on:keyup.enter="queryForKeywords" v-on:keydown="queryForKeywords">
Run Code Online (Sandbox Code Playgroud)
和JS:
queryForKeywords: function(event) {
var self = this;
if (this.keywords.length > 2) {
console.log("keywords value: " + this.keywords);
console.log("event value: " + event.currentTarget.value);
}
Run Code Online (Sandbox Code Playgroud) 根据我在此处和此处阅读的内容,您放置中间件功能的顺序很重要,因为如果将某些路线放置在路线之前,您可以让某些路线不通过中间件功能,而放置在之后的路线将通过这个中间件功能。
我看到的结果喜忧参半,因为我的开发环境不尊重这一点,而我的生产环境则尊重。代码完全一样。
我想要做的是让我的登录路由不受令牌检查器中间件功能的保护,并让我的其余路由受令牌保护。
这是我的代码:
routes.get('/login', function(req, res) {
// login user, get token
});
routes.use(function(req, res, next) {
// check header or url parameters or post parameters for token
var token = req.headers['access-token'];
// decode token
if (token) {
// validate token
}
else if (req.method === 'OPTIONS') {
next();
}
else {
// if there is no token
// return an error
return res.status(403).send({
success: false,
message: 'No token provided.'
});
}
});
routes.get('/query/:keywords', function(req, …Run Code Online (Sandbox Code Playgroud) 我正在创建一个网络应用程序,主页是用户选择他们的位置的地方。主页模板的视图在我的数据库中查询位置列表并填充下拉列表。用户点击提交后,我验证表单数据,如果他们选择了一个有效的城市(即它存在于我的数据库中),我想将它们重定向到另一个页面,显示该城市当天的交易。我的问题基于 Django 中的基本视图/表单设计。如何将城市传递到下一页?基本上我想做以下事情:
首页 -> 提交表单 -> 调用方法验证表单 -> 表单将用户重定向到另一个页面
我是否必须创建单独的验证视图/页面进行验证?表单采用动作参数,所以我猜我必须将动作设置为 /validate/,这将调用我的 validate_form() 方法(通过 urls.py 文件),然后将它们重定向到适当的页面。
在我继续实施之前,我只是想由某人来运行我的想法。谢谢你的时间。
django ×4
python ×4
express ×1
express-jwt ×1
forms ×1
javascript ×1
json ×1
jwt ×1
node.js ×1
validation ×1
vue.js ×1