【发布时间】:2016-11-02 22:26:02
【问题描述】:
当我尝试将一些信息发布到数据库中时,我无法弄清楚如何让 curl 工作。我在说它无法读取 txt 文件之前收到一个错误,但是我输入了完整路径,现在它说“发送了一个服务器无法理解的请求”Tbh 我不确定如何正确使用 curl 并且不要如果我不使用 txt 文件,知道在 url 中输入什么。
我的卷发是这样的
C:\Windows>curl -X POST -d "C:/Users/Muba/PycharmProjects/API practise/todo.txt"
http://127.0.0.1:5000/ --header "Content-Type:application/json"
我的 todo.txt 文件包含
todo_ID, 12
User_ID, 8
details, "Get rid of all the flies in the house."
这是我的代码。
from flask import Flask, jsonify,json, request, abort
from flask_sqlalchemy import SQLAlchemy
import requests
app = Flask(__name__)
app.config.from_pyfile('Config.py')
db = SQLAlchemy(app)
db.create_all()
class JsonModel(object):
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class User(db.Model, JsonModel):
User_ID = db.Column(db.Integer, primary_key = True)
FirstName = db.Column(db.String(20))
LastName = db.Column(db.String(20))
def __init__(self,FirstName, LastName):
self.FirstName = FirstName
self.LastName = LastName
class Todo(db.Model, JsonModel):
todo_ID = db.Column(db.Integer, primary_key = True)
UserID = db.Column(db.Integer, db.ForeignKey('User_ID'))
details = db.Column(db.String(30))
def __init__(self,details):
self.details = details
@app.route('/', methods = ['GET'])
def index():
return json.dumps([u.as_dict() for u in User.query.all()+Todo.query.all()])
@app.route('/', methods = ['POST'])
def create_dev():
if not request.json or not 'name' in request.json:
abort(400)
dev = Todo(request.json.todo_ID, request.json.get('todo_ID',''), request.json.UserID, request.json.get('UserID',''),
request.json.details,request.json.get('details',''))
db.session.add(dev)
db.session.commit()
return json.dumps([{'dev': dev}]), 201
if __name__ == '__main__':
app.run()
【问题讨论】:
-
Umm...
--header "Content-Type:application/json"...你知道 JSON 是什么样的吗,因为你发布的是 CSV 文件 -
不,我是菜鸟 :( 我会是:文本"
-
如果您希望
request.json正常工作,请不要这样做。您需要将text.txt完全重写为实际上是JSON -
啊,伙计...我会尝试弄清楚如何做到这一点
-
我不能把所有的都保存为 .json 吗?