如何解决使用漏勺对Multidict进行反序列化
在一个网站上,我有一个<select>
element with multiple
attribute,如下所示:
<select value="name" multiple>
<option value="willi">Willi</option>
<option value="wonka">Wonka</option>
</select>
如果同时选择了这两个选项,则Pyramid服务器的视图功能会收到带有request object实例的multidict:
MultiDict([('name','willi'),('name','wonka')])
因为我一直在使用Colander进行数据验证和反序列化,所以我想为此实例编写一个模式…但是在深入研究文档之后,我开始怀疑这是否完全可能?>
那么,我该如何使用Colander反序列化这个特定的multidict?
解决方法
我怀疑您会想要使用import React,{ useState,useEffect } from "react";
import axios from "axios";
import Header from "./Header";
import Footer from "./Footer";
import Note from "./Note";
import CreateArea from "./CreateArea";
function App() {
const [notes,setNotes] = useState([]);
useEffect(() => {
axios
.get('http://localhost:5000')
.then(res => {
setNotes(res.data);
});
},[]);
function addNote(newNote) {
setNotes(prevNotes => {
return [...prevNotes,newNote];
});
}
function deleteNote(id) {
setNotes(notes => {
return notes.filter((noteItem) => {
return noteItem._id !== id;
});
});
}
function NoteList() {
return (
notes.map((noteItem) => {
return (
<Note
key={noteItem._id}
id={noteItem._id}
title={noteItem.title}
content={noteItem.content}
onDelete={deleteNote}
noteId={noteItem._id}
/>
);
})
);
}
return (
<div>
<Header />
<CreateArea onAdd={addNote} />
<NoteList />
<Footer />
</div>
);
}
export default App;
之类的东西,如果发送了多个值(如果只有一个值,则不会返回列表),并且可能返回一个import React,{ useState } from "react";
import axios from "axios";
function CreateArea(props) {
const [note,setNote] = useState({
title: "",content: ""
});
function handleChange(event) {
const { name,value } = event.target;
setNote(prevNote => {
return {
...prevNote,[name]: value
};
});
}
function submitNote(event) {
props.onAdd(note);
setNote({
title: "",content: ""
});
event.preventDefault();
axios
.post('http://localhost:5000',note)
.then(res => {
console.log(res);
console.log(res.data);
});
}
return (
<div>
<form action="/" method="post">
<input
name="title"
onChange={handleChange}
value={note.title}
placeholder="Title"
/>
<textarea
name="content"
onChange={handleChange}
value={note.content}
placeholder="Take a note..."
rows="3"
/>
<button className="button" onClick={submitNote}>Add</button>
</form>
</div>
);
}
export default CreateArea;
键的列表。漏勺准备器,将其转换为列表(如果还没有)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。