toy_project
05. rest framework 시작하기 (핵기초)
인계동ADHD환자
2022. 3. 1. 16:46
728x90
mysql db에 넣어준 Isntagram Mbti 게시물들을 가져와서 api로 뿌려주자
setting.py에서 DATABASE를 장고에서 디폴트 설정된 부분을 실제 뿌려줄 데이터가 존재하는 db접속 정보로 변경하고
class board(models.Model):
mbti = models.CharField(db_column='mbti', max_length=50)
user_name = models.CharField(db_column='user_name', max_length=100)
content_text = models.TextField(db_column='content_text', max_length=255 )
like_count = models.IntegerField(db_column='like_count',)
class Meta:
managed = False
db_table = 't_insta_crawler'
DB기반으로 models을 생성해주고
makemigrations를 한다
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
이런 오류가 뜬다 찾아보니
M1 error- Django mysql 연동 (Did you install mysqlclient?)
역시 m1이어서 발생한 오류이다
pip install pymysql
로 pymysql을 설치해주고
import pymysql
pymysql.install_as_MySQLdb()
setting.py 에 상기 코드를 추가해준다.
(1054, "Unknown column 't_insta_crawler.id' in 'field list'")
이런 에러가뜬다
확인해보니
t_insta_crawler안에 id 칼럼이 없어서 그렇다
장고에서는 migrate하면 id를 자동으로 만들어주는데 이걸 없애도 에러가뜬다..
그것도 모르고 migrate를 init시키고 다시 하고 무슨 에러인지 몰라서 별짓 다하다가
테이블에 id 칼럼 추가 해주니까 됐다..
[
{
"id": null,
"mbti": "intp",
"user_name": "mbti.epiphany",
"content_text": "کپشن مهم''شهودیN مثل INFJ????حسی S مثل ESTP????نکته ی مهم:ما هیچوقت کاملا شهودی یا کاملا حسی نیستیم حتی تو تستی هم که میدید به صورت درصدی مشخص میکنه پس نگید من شهودیم پس چرا فلان ویژگی حسی هارم دارم و ....????برای دیدن مطالب مووود راجع به MBTI???????????? @mbti.epiphany ????فالو کنید :)????????•••#mbti #mbtimemes #mbtipersonality #ام_بی_تی_ای#moodvideo #moodclip #moodvids #moodedits #moodedit #تیپ_شخصیتی #تایپ_شخصیتی #تکست #تکست_سنگین #تکست_مود #mood #textmood #mbti_entj #entj #درونگرا#درونگرایی #برونگرایی #برونگرا##intp #infj#infp #istp #isfj #istj #isfp•#mbti_epiphany",
"like_count": 222
},
{
"id": null,
"mbti": "intp",
"user_name": "s__cong",
"content_text": "다들 2022년 새복 많이받으세용????칭구들아 작년보다 두세배는 많이벌어가고 늘 건강하자 ????#intp #약속은코로나끝나고",
"like_count": 14
},
근데 이게 페북 api처럼 20개보여주고 다음 페이지로 넘어가는 기능은 없다 -> 내일 배워보자
path('boardlist/<str:mbti>', views.boardView, name='boardview')
@api_view(['GET'])
def boardView(request, mbti):
boards = board.objects.filter(mbti=mbti)
serializer = BoardSerializer(boards, many=True)
return Response(serializer.data)
Model에 filter기능으로 칼럼에 조회하고 싶은 Mbti를 넣으면
해당 mbti칼럼에 조회한 mbti( ex intp esfj )들에 해당되는 칼럼들이 나온다
728x90