ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 05. rest framework 시작하기 (핵기초)
    toy_project 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
Designed by Tistory.