我有一个烧瓶桌可以很好地存储输入的电子邮件。我想要另一个页面来存储输入的instagrams。所以我基本上把instagram的大部分电子邮件代码都翻了一倍。我有一个表单,但是当我在webapp上输入一些东西时,我得到一个500内部服务器错误。我想我的问题是内容类型可能不是json?是“text/html”吗?我试图改变这一点,但没有成功。我觉得我在初始化表或其他东西时遗漏了一个步骤,而不仅仅是db.create_all()
app.py:
from flask import Flask, jsonify, request, send_from_directory
from flask_sqlalchemy import SQLAlchemy
import datetime
from flask_marshmallow import Marshmallow
from flask_cors import CORS
app = Flask(__name__, static_url_path='', static_folder='frontend/build')
CORS(app)
app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:fakepass@localhost/pobblebonk'
ca@us-cdbr-east-04.cleardb.com/heroku_8caeb1ebf4606b6'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']= False
db = SQLAlchemy(app)
ma = Marshmallow(app)
class Emails(db.Model):
id = db.Column(db.Integer, primary_key = True)
email = db.Column(db.String(120))
ighandle = db.Column(db.String(120))
def __init__(self, email):
self.email = email
class EmailsSchema(ma.Schema):
class Meta:
fields = ('id','email')
class IGHandles(db.Model):
__tablename__ = 'IGHandles'
num = db.Column(db.Integer, primary_key = True)
ighandle = db.Column(db.String(120))
def __init__(self, ighandle):
self.ighandle = ighandle
class IGHandlesSchema(ma.Schema):
class Meta:
fields = ('id','ighandle')
email_schema = EmailsSchema()
emails_schema = EmailsSchema(many=True)
ighandle_schema = IGHandlesSchema()
ighandles_schema = IGHandlesSchema(many=True)
@app.route("/", defaults={'path':''})
def serve(path):
return send_from_directory(app.static_folder, 'index.html')
@app.route('/get', methods = ['GET'])
def get_emails():
all_emails = Emails.query.all()
results = emails_schema.dump(all_emails)
return jsonify(results)
def get_ighandles():
all_ighandles = IGHandles.query.all()
results = ighandles_schema.dump(all_ighandles)
@app.route('/get/<id>', methods = ['GET'])
def post_emails(id):
results = Emails.query.get(id)
return email_schema.jsonify(results)
def post_ighandles(id):
results = IGHandles.query.get(id)
return ighandle_schema.jsonify(results)
@app.route('/add', methods = ['POST'])
def add_email2():
email = request.json['email']
print('add email python')
entry = Emails(email)
db.session.add(entry)
db.session.commit()
return email_schema.jsonify(entry)
@app.route('/add_ig', methods = ['POST'])
def add_ighandles():
ighandle = request.json['ighandle']
entry = IGHandles(ighandle)
db.session.add(entry)
db.session.commit()
if __name__ == "__main__":
app.run(debug=True)
APIService.js将前端连接到后端
export default class APIService {
static SubmitEmail(body) {
return fetch(`http://localhost:5000/add`, {
'method':'POST',
mode: 'cors',
headers: {
'Content-Type':'application/json'
},
body: JSON.stringify(body)
})
.then(resp => console.log("email here"))
.catch(error => console.log(error))
}
static SubmitIG(body) {
return fetch(`http://localhost:5000/add_ig`, {
'method':'POST',
mode: 'cors',
headers: {
'Content-Type':'application/json'
},
body: JSON.stringify(body)
})
.then(resp => console.log("ig here"))
.catch(error => console.log(error))
}
}
js…我用来输入instagrams的表单
import React, {useState, useEffect} from 'react'
import APIService from '../components/APIService'
function IgersForm() {
const[ighandle, setIGhandle] = useState('')
useEffect(() => {
setIGhandle()
},[])
const submitIG = () => {
APIService.SubmitIG({ighandle})
.then(setIGhandle(''))
.then(resp=> console.log(resp))
.then(resp=> console.log("hi igers"))
.then(resp=> console.log({ighandle}))
//.catch(error => console.log(error))
}
return (
<div>
<div className = "mb-3">
<label htmlFor = "ighandle" className = "form-label"></label>
<input type="text" className="form-control"
//value = {email|| ''}
value = {ighandle}
placeholder = "Please enter instagram handle"
onChange = {(e) => setIGhandle(e.target.value)}
/>
<button
onClick = {submitIG}
className = "btn btn-success mt-3"
>Submit</button>
</div>
</div>
)
}
export default IgersForm
最后,我的错误是:
目前没有回答
相关问题 更多 >
编程相关推荐