Faisons un service de vente au comptant 4 (en Python mini Hack-a-thon)

Maintenant que nous avons une API liée aux cercles, nous allons créer une API liée aux éléments. Cette fois (42e) j'ai participé et travaillé sur Python mini Hack-a-thon. http://connpass.com/event/5775/

additem.jpg

Vous pouvez vous inscrire à partir d'une telle interface utilisateur.

De nouvelles choses que j'ai apprises

À propos de la conception d'entité

Les choses à faire sont presque les mêmes que la dernière fois, mais cette fois le nombre de vignettes enregistrées est passé de 1 à 4

#Informations sur les articles vendus par le cercle. 1 entité=1 article
class CircleItem(BaseModel):
    circleInfomation = ndb.KeyProperty(kind=CircleInfomation)   #Cercle de vente
    name = ndb.StringProperty()     	#Nom de l'article
    thumbUrls1 = ndb.StringProperty() 	#Vignette de l'article partie 1
    thumbUrls2 = ndb.StringProperty() 	#Vignette d'article partie 2
    thumbUrls3 = ndb.StringProperty() 	#Vignette d'article partie 3
    thumbUrls4 = ndb.StringProperty() 	#Vignette d'article partie 4
    description = ndb.StringProperty()	#Description de l'article
    count = ndb.IntegerProperty() #Nombre d'unités vendues
    price = ndb.IntegerProperty() #prix

Vous pouvez mettre une propriété pour chaque miniature, mais le but de la propriété miniature est le même. Il semble bon de les mettre tous dans une même propriété.

#Informations sur les articles vendus par le cercle. 1 entité=1 article
class CircleItem(BaseModel):
    circleInfomation = ndb.KeyProperty(kind=CircleInfomation)   #Cercle de vente
    name = ndb.StringProperty()			#Nom de l'article
    thumbUrls = ndb.StringProperty(repeated=True) #URL de la miniature de l'article(Jusqu'à 4)
    description = ndb.StringProperty()	#Description de l'article
    count = ndb.IntegerProperty() 		#Nombre d'unités vendues
    price = ndb.IntegerProperty() 		#prix

J'ai fait ça.

A propos du traitement du curseur de requête

Si vous essayez d'afficher plusieurs demandes sur le serveur séparément, le traitement du curseur sera effectué. L'AppEngineSDK a des fonctions utiles, j'essaie donc de joindre l'URL s'il y a une continuation basée sur cela. Webapp2 # uri_for était utile pour la génération d'URL.


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

#Générez l'URL suivante s'il y a une suite
next_url = None
if more:
	next_url = webapp2.uri_for('Infomation',circleid=circleid,limit=limit,cursor=next_curs.urlsafe())

#Définir ces données
itemList = []
for e in entitylist:
	item = Common.createCircleItemResponseFromEntity(e)
	itemList.append(item)

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

#Convertir en JSON et revenir au client
Common.writeUserResponseSuccess(self, res )

Par exemple http://localhost:8080/user/api/circleitem/infomation?circleid=1 Si vous faites une telle demande,

{
	"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":"Nom de l'article",
				"description":"Détails de l'article"}
		]
}

Lorsqu'une telle requête est renvoyée, `" next ":" http: // localhost: 8080 / user / api / circleitem / infomation? Circleid = 1 & limit = 1 & cursor = E-ABAIICLWoSZGV2fmZyZyZWVtYXJrZXQtYXBwchcLEgpDaXJjbGVJdg Vous pouvez les mettre en ordre.

C'est comme ça que j'ai fait la branche à ce jour https://github.com/nagai/freemarket/tree/20140412

Tâches futures

la prochaine fois

Ensuite, nous allons créer le côté client.

Recommended Posts

Faisons un service de vente au comptant 4 (en Python mini Hack-a-thon)
Faisons un service de vente au comptant 2
Faisons un service de vente au comptant 1
Faisons un service de vente au comptant 3
Faisons un service de vente au comptant 9 (édition Task Queue)
Faisons un service de vente au comptant 8 (édition de téléchargement d'image)
Faisons un calcul de combinaison avec Python
Créer un bookmarklet en Python
Faisons une interface graphique avec python.
Faisons un graphe avec python! !!
Faisons un jeu de shiritori avec Python
Faisons la voix lentement avec Python
Créez un framework Web avec Python! (1)
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
Copiez la liste en Python
Créez un jeu Janken en une seule ligne (python)
Faisons quelques exemples de traitement des notifications en Python
Remplaçons UWSC par Python (5) Faisons un robot
Créez un tracé de R semblable à un joyplot avec python
Faisons un module pour Python en utilisant SWIG
Essayez de créer un module Python en langage C
Je veux écrire en Python! (2) Écrivons un test
Créez un Slackbot simple avec un bouton interactif en python
[Jouons avec Python] Créer un livre de comptes de ménage
Essayez de créer un jeu simple avec Python 3 et iPhone
[Pour jouer] Essayez de faire de Yuma un robot LINE (Python)
[Super facile] Faisons un LINE BOT avec Python.
Faisons un programme cron en Java! !! (Planificateur de tâches)
Faisons un saut dans l'industrie manufacturière en utilisant le Web en plus de Python
Créons un client de socket Web avec Python. (Authentification par jeton d'accès)
Voyons comment utiliser def en python
Prendre une capture d'écran en Python
Faisons un robot Discord.
Créer une fonction en Python
Créer un dictionnaire en Python
Créer un tableau de multiplication de chaque élément dans une feuille de calcul (Python)
Scan spot WIFI avec Python
Créons un script qui s'enregistre avec Ideone.com en Python.
Ne faites pas test.py en Python!
Faites une loterie avec Python
Faire de Responder un démon (service)
Rendre Opencv disponible en Python
Segfo python en 2 lignes
J'ai fait un chronomètre en utilisant tkinter avec python
Dessinez un cœur en Python
Je veux ajouter un joli complément à input () en python
Trouvons le rapport de circonférence avec Python
Faisons une discussion WEB en utilisant WebSocket avec AWS sans serveur (Python)!
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
Segfo python en une ligne
[python] Gérer les fonctions dans une liste
Appuyez sur une commande en Python (Windows)
Faisons une rumba distante [Logiciel]
Lançons "python -m antigravity" en python
Dessinez une matrice de diagramme de dispersion avec python
ABC166 en Python A ~ C problème