Machen wir einen Spot Sale Service 4 (in Python Mini Hack-a-thon)

Nachdem wir nun eine kreisbezogene API haben, erstellen wir eine artikelbezogene API. Dieses Mal (42.) habe ich an Python mini Hack-a-thon teilgenommen und daran gearbeitet. http://connpass.com/event/5775/

additem.jpg

Sie können sich über eine solche Benutzeroberfläche registrieren.

Neue Dinge, die ich gelernt habe

Informationen zum Entitätsdesign

Die Dinge, die zu tun sind, sind fast die gleichen wie beim letzten Mal, aber dieses Mal hat sich die Anzahl der registrierten Miniaturansichten von 1 auf 4 geändert

#Vom Kreis verkaufte Artikelinformationen. 1 Entität=1 Artikel
class CircleItem(BaseModel):
    circleInfomation = ndb.KeyProperty(kind=CircleInfomation)   #Verkaufskreis
    name = ndb.StringProperty()     	#Artikelname
    thumbUrls1 = ndb.StringProperty() 	#Artikel Miniaturbild Teil 1
    thumbUrls2 = ndb.StringProperty() 	#Artikel Miniaturbild Teil 2
    thumbUrls3 = ndb.StringProperty() 	#Artikel Miniaturbild Teil 3
    thumbUrls4 = ndb.StringProperty() 	#Artikel Miniaturbild Teil 4
    description = ndb.StringProperty()	#Artikelbeschreibung
    count = ndb.IntegerProperty() #Anzahl der verkauften Einheiten
    price = ndb.IntegerProperty() #Preis

Sie können für jede Miniaturansicht eine Eigenschaft einfügen, der Zweck der Miniaturansichtseigenschaft ist jedoch der gleiche. Es scheint gut, sie alle in einer Eigenschaft zusammenzufassen.

#Vom Kreis verkaufte Artikelinformationen. 1 Entität=1 Artikel
class CircleItem(BaseModel):
    circleInfomation = ndb.KeyProperty(kind=CircleInfomation)   #Verkaufskreis
    name = ndb.StringProperty()			#Artikelname
    thumbUrls = ndb.StringProperty(repeated=True) #URL der Miniaturansicht des Elements(Bis zu 4)
    description = ndb.StringProperty()	#Artikelbeschreibung
    count = ndb.IntegerProperty() 		#Anzahl der verkauften Einheiten
    price = ndb.IntegerProperty() 		#Preis

Ich tat dies.

Informationen zur Verarbeitung des Abfragecursors

Wenn Sie versuchen, mehrere Anforderungen auf dem Server separat anzuzeigen, wird die Cursorverarbeitung ausgeführt. Das AppEngineSDK verfügt über nützliche Funktionen, daher versuche ich, die URL anzuhängen, wenn darauf eine Fortsetzung basiert. Webapp2 # uri_for war nützlich für die URL-Generierung.


#DataStore abfragen
entitylist, next_curs, more = CircleItem.query(CircleItem.circleInfomation==circleInfo.key).fetch_page(limit, start_cursor=cursor)

#Generieren Sie die folgende URL, wenn eine Fortsetzung vorliegt
next_url = None
if more:
	next_url = webapp2.uri_for('Infomation',circleid=circleid,limit=limit,cursor=next_curs.urlsafe())

#Stellen Sie diese Daten ein
itemList = []
for e in entitylist:
	item = Common.createCircleItemResponseFromEntity(e)
	itemList.append(item)

res = dict(
	itemList = itemList,
	next = next_url
)

#In JSON konvertieren und zum Client zurückkehren
Common.writeUserResponseSuccess(self, res )

Zum Beispiel http://localhost:8080/user/api/circleitem/infomation?circleid=1 Wenn Sie eine solche Anfrage stellen,

{
	"response":
	{
		"status":200
	},
	"next":"http://localhost:8080/user/api/circleitem/infomation?circleid=1&limit=1&cursor=E-ABAIICLWoSZGV2fmZyZWVtYXJrZXQtYXBwchcLEgpDaXJjbGVJdGVtGICAgICA4JcJDBQ=",
	"itemList":
		[
			{
				"price":1000,
				"thumbUrls":[
					"http://localhost:8080/user/api/circleitem/thumbnail?circleitemid=5171003185430528&no=0"
				],
				"count":12,
				"name":"Artikelname",
				"description":"Artikeldetails"}
		]
}

Wenn eine solche Anfrage zurückgegeben wird, "next": http: // localhost: 8080 / user / api / circleitem / infomation? Circleid = 1 & limit = 1 & cursor = Sie können sie in Ordnung bringen.

So habe ich den Zweig bis heute gemacht https://github.com/nagai/freemarket/tree/20140412

Zukünftige Aufgaben

nächstes Mal

Als nächstes erstellen wir die Client-Seite.

Recommended Posts

Machen wir einen Spot Sale Service 4 (in Python Mini Hack-a-thon)
Machen wir einen Spot Sale Service 2
Machen wir einen Spot Sale Service 1
Machen wir einen Spot Sale Service 3
Machen wir einen Spot Sale Service 9 (Task Queue Edition)
Machen wir einen Spot Sale Service 8 (Image Uploader Edition)
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Erstellen Sie ein Lesezeichen in Python
Lassen Sie uns eine GUI mit Python erstellen.
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Lassen Sie uns mit Python langsam sprechen
Erstellen Sie ein Webframework mit Python! (1)
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Kopieren Sie die Liste in Python
Mach ein Janken-Spiel in einer Zeile (Python)
Lassen Sie uns einige Beispiele für die Benachrichtigungsverarbeitung in Python erstellen
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
Machen Sie mit Python eine Joyplot-ähnliche Handlung von R.
Lassen Sie uns mit SWIG ein Modul für Python erstellen
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Erstellen Sie einen einfachen Slackbot mit einer interaktiven Schaltfläche in Python
[Lass uns mit Python spielen] Ein Haushaltsbuch erstellen
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
[Zum Spielen] Versuche Yuma zu einem LINE Bot zu machen (Python)
[Super einfach] Machen wir einen LINE BOT mit Python.
Lassen Sie uns ein Cron-Programm in Java erstellen! !! (TaskScheduler)
Machen wir einen Sprung in die Fertigungsindustrie, indem wir zusätzlich zu Python das Web nutzen
Lassen Sie uns mit Python einen Web-Socket-Client erstellen. (Zugriffstoken-Authentifizierung)
Mal sehen, wie def in Python verwendet wird
Machen Sie einen Screenshot in Python
Machen wir einen Discord Bot.
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Erstellen Sie eine Multiplikationstabelle für jedes Element in einer Tabelle (Python).
WIFI-Spot-Scan mit Python
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Mach nicht test.py in Python!
Machen Sie eine Lotterie mit Python
Machen Sie Responder zu einem Daemon (Dienst)
Stellen Sie Opencv in Python zur Verfügung
Segfo Python in 2 Zeilen
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Zeichne ein Herz in Python
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Lassen Sie uns das Umfangsverhältnis mit Python finden
Lassen Sie uns einen Web-Chat mit WebSocket mit AWS serverless (Python) durchführen!
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Schreiben Sie eine Dichotomie in Python
Segfo Python in einer Zeile
[Python] Verwalten Sie Funktionen in einer Liste
Drücken Sie einen Befehl in Python (Windows)
Lassen Sie uns eine Remote-Rumba erstellen [Software]
Lassen Sie uns "Python -m Antigravitation" in Python ausführen
Zeichnen Sie eine Streudiagrammmatrix mit Python
ABC166 in Python A ~ C Problem