Korzystając z tego stworzyłem serwer we Flasku który ma bazę danych z dwoma rekordami. Następnie chciałem poprzez tę aplikację dostępną tam przesłać dane używając rest api (Volley) aby tę bazę poszerzyć. Aplikację uruchomiłem,kod też się zgadza, i mój serwer pracuje,jednakże aplikacja nie robi nic,nic się nie dzieje,tak jakby buttony się nie uaktywniły i nie mam jak sprawdzić czy POST/GET działa (a raczej nie działa i nie wiem dlaczego). Chce mi ktoś pomóc?
Python: from flask import Flask, request from flaskrestful import Resource, Api from sqlalchemy import createengine from json import dumps from flaskjsonpify import jsonify
dbconnect = createengine('sqlite:///students.db') app = Flask(_name) api = Api(app)
class Students(Resource): def get(self): conn = dbconnect.connect() # connect to database query = conn.execute("select * from students") # This line performs query and returns json result return {'students': [i[0] for i in query.cursor.fetchall()]} # Fetches first column that is Student ID
def post(self): conn = dbconnect.connect() print(request.json) LastName = request.json['LastName'] FirstName = request.json['FirstName'] Email = request.json['Email'] Class = request.json['Class'] query = conn.execute("insert into students values(null,'{0}','{1}','{2}','{3}')".format(FirstName, LastName, Email, Class)) return {'status': 'success'}
class StudentDetails(Resource): def get(self, studentid): conn = dbconnect.connect() query = conn.execute("select * from students where StudentId =%d " %int(studentid)) result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]} return jsonify(result)
@yras8: strzelaj Postmanem na te endpointy i zobacz co się dzieje. A w kodzie dodaj jakieś debugowe printy żeby zobaczyć w którym momencie się pieprzy.
https://varunmishra.com/teaching/cs65/http-volley/
Korzystając z tego stworzyłem serwer we Flasku który ma bazę danych z dwoma rekordami. Następnie chciałem poprzez tę aplikację dostępną tam przesłać dane używając rest api (Volley) aby tę bazę poszerzyć. Aplikację uruchomiłem,kod też się zgadza, i mój serwer pracuje,jednakże aplikacja nie robi nic,nic się nie dzieje,tak jakby buttony się nie uaktywniły i nie mam jak sprawdzić czy POST/GET działa (a raczej nie działa i nie wiem dlaczego). Chce mi ktoś pomóc?
Java:
https://pastebin.pl/view/41dc5d0b
Python:
from flask import Flask, request
from flaskrestful import Resource, Api
from sqlalchemy import createengine
from json import dumps
from flaskjsonpify import jsonify
dbconnect = createengine('sqlite:///students.db')
app = Flask(_name)
api = Api(app)
class Students(Resource):
def get(self):
conn = dbconnect.connect() # connect to database
query = conn.execute("select * from students") # This line performs query and returns json result
return {'students': [i[0] for i in query.cursor.fetchall()]} # Fetches first column that is Student ID
def post(self):
conn = dbconnect.connect()
print(request.json)
LastName = request.json['LastName']
FirstName = request.json['FirstName']
Email = request.json['Email']
Class = request.json['Class']
query = conn.execute("insert into students values(null,'{0}','{1}','{2}','{3}')".format(FirstName,
LastName, Email, Class))
return {'status': 'success'}
class StudentDetails(Resource):
def get(self, studentid):
conn = dbconnect.connect()
query = conn.execute("select * from students where StudentId =%d " %int(studentid))
result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]}
return jsonify(result)
api.addresource(Students, '/students') # Route1
api.addresource(StudentDetails, '/students/') # Route2
if _name == "main":
app.run(port='5002')