Django RESTフレームワークを使用して、さまざまなメソッドを呼び出すAPIを作成したいと考えています。このフレームワークを扱うために[django-rest-framework] [1]のガイドを読んでいますが、まだいくつか質問があります。モデルのないDjango RESTフレームワーク
モデルがありません。私は外部データベースからデータを取得しています。
- が
- 私は設定ファイルに、私のビューに含める私は新しいアプリを作成し、そのために一つのプロジェクト
からデータを取得し、プロジェクトのすべてのリストを取得します。私は、単純な最初のものを試してみたいです私は私のシリアライザファイル
def connect_database():
db = MySQLdb.connect(host='...', port=, user='...', passwd='...', db='...')
try:
cursor = db.cursor()
cursor.execute('SELECT * FROM proj_cpus')
columns = [column[0] for column in cursor.description]
# all_rows = cursor.fetchall()
all_rows = []
for row in iter_row(cursor):
all_rows.append(dict(zip(columns, row)))
finally:
db.close()
return all_rows
def iter_row(cursor, size= 1000):
while True:
results = cursor.fetchmany(size)
if not results:
break
for item_result in results:
yield item_result
class cpuProjectsViewSet(viewsets.ViewSet):
serializer_class = serializers.cpuProjectsSerializer
def list(self, request):
all_rows = connect_database()
name_project = []
for item_row in all_rows:
name_project.append(item_row['project'])
name_project = list(sorted(set(name_project)))
serializer = serializers.cpuProjectsSerializer(instance=name_project, many=False)
return Response(serializer.data)
拳のケースのために、私はこの
を持っていることを含んでの.py私はこのhttp://127.0.0.1:8000/hpcAPI
は私が
Got AttributeError when attempting to get a value for field `project` on serializer `cpuProjectsSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `list` instance.
Original exception text was: 'list' object has no attribute 'project'.
私はグーグルで探し、このエラーを取得し、私は変更の実行今
この
serializers.cpuProjectsSerializer(instance=name_project, many=False)
serializers.cpuProjectsListSerializer(instance=name_project, many=False)
が、私は得るために同じエラー!
ドキュメントhere。あなたからadavances
あなたのコードが実際にどのように見えるか、インデントに問題がありますか?そのように見えたら、おそらく 'SyntaxError'があるでしょう。 –
ありがとう@Games Brainiac私は、私はいくつかの行を移動する貼り付けたときに私は、おそらく私は、私は空のファイルを持っているシリアライザファイルに問題があるインデントに問題はない、ライン。私はどのようにプロジェクトのリストを返すためにこのファイルを正確に持っていなければならないのか分かりません。 – Stone