Javascript 试图将表单数据从React.js表单发送到Flask API,但它没有';不允许提交到MongoDB
为了理解使用react.js、python(Flask)和mongodb的API函数,我正在尝试创建一个简单的create用户表单。然而,我不断得到一个错误,即没有任何输入被发送到Flask后端。我能解决这个问题吗 这是identity.py,post使用Flask\u Restful获取句柄Javascript 试图将表单数据从React.js表单发送到Flask API,但它没有';不允许提交到MongoDB,javascript,python,reactjs,mongodb,flask-restful,Javascript,Python,Reactjs,Mongodb,Flask Restful,为了理解使用react.js、python(Flask)和mongodb的API函数,我正在尝试创建一个简单的create用户表单。然而,我不断得到一个错误,即没有任何输入被发送到Flask后端。我能解决这个问题吗 这是identity.py,post使用Flask\u Restful获取句柄 class NewUser(Resource): def post(self): name = request.form.get("name") email
class NewUser(Resource):
def post(self):
name = request.form.get("name")
email = request.form.get("email")
password = request.form.get("password")
user = User(name=name, email=email, password=password)
if not name:
return {'Error': "Name Not Included"}, 403
if not email:
return {'Error': "Email Not Included"}, 404
if not password:
return {'Error': "Password Not Included"}, 405
user.hash_password()
user.save()
id = user.id
return {'id': str(id)}, 200
这里是React_应用程序中的app.js正在与代理连接。代理可以正常工作,因为它能够从后端发送标题,而不会出现任何错误
import React, {Component} from 'react';
class App extends Component {
constructor(props) {
super(props);
this.state = {
name: '',
email: '',
password: '',
titleData: [],
userData: []
};
this.handleChange = this.handleChange.bind(this)
this.handleSubmit = this.handleSubmit.bind(this)
}
handleChange(event) {
this.setState({
name: event.target.value,
email: event.target.value,
password: event.target.value
})
}
///Find a way to submit POST form to python_flask
async handleSubmit(event) {
event.preventDefault()
console.log('Submit')
await fetch('/user/join', {
method: 'POST'
})
.then(res => res.json())
.then(json => {
this.setState({
userData: json
})
})
.catch(() => {
console.log("Error in Data")
})
}
async getData() {
await fetch('/get')
.then(response => response.json())
.then(json => {
this.setState({
titleData: json
})
})
}
async componentDidMount() {
this.getData()
}
render() {
return (
<div className="App">
<header>
<h1>{this.state.titleData.title}</h1>
</header>
<div>
<p>heeheehe</p>
<form onSubmit={this.handleSubmit}>
<h3>New User? Sign in here!</h3>
<div>
<input
type="text"
name="name"
placeholder="Name"
value={this.props.value}
onChange={this.props.handleChange}
/>
</div>
<div>
<input
name="email"
placeholder="Email"
value={this.props.value}
onChange={this.props.handleChange}
/>
</div>
<div>
<input
name="password"
placeholder="Password"
value={this.props.value}
onChange={this.props.handleChange}
/>
</div>
<button>Press Me</button>
</form>
</div>
</div>
)
}
}
export default App;
import React,{Component}来自'React';
类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
名称:“”,
电子邮件:“”,
密码:“”,
标题数据:[],
用户数据:[]
};
this.handleChange=this.handleChange.bind(this)
this.handleSubmit=this.handleSubmit.bind(this)
}
手变(活动){
这是我的国家({
名称:event.target.value,
电子邮件:event.target.value,
密码:event.target.value
})
}
///找到一种向python提交POST表单的方法
异步handleSubmit(事件){
event.preventDefault()
console.log('Submit')
等待获取(“/user/join”{
方法:“发布”
})
.then(res=>res.json())
。然后(json=>{
这是我的国家({
userData:json
})
})
.catch(()=>{
console.log(“数据错误”)
})
}
异步getData(){
等待获取(“/get”)
.then(response=>response.json())
。然后(json=>{
这是我的国家({
标题数据:json
})
})
}
异步组件didmount(){
这个文件名为getData()
}
render(){
返回(
{this.state.titleData.title}
嘻嘻
新用户?在这里登录!
按我
)
}
}
导出默认应用程序;