微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用漏勺对Multidict进行反序列化

如何解决使用漏勺对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 举报,一经查实,本站将立刻删除。