본문 바로가기

dev/Django

[Django]MariaDB연동

 

https://mariadb.org/download/?t=mariadb&p=mariadb&r=10.7.3&os=windows&cpu=x86_64&pkg=msi&m=yongbok 

 

Download MariaDB Server - MariaDB.org

REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server"

mariadb.org

MariaDB Server 10.4.24
비밀번호 설정

Default instance properties만 위와같이 수정하였고, 나머지는 모두 Next눌러서 설치했다!

비밀번호는 본인이 사용할 비밀번호를 입력하면 된다. (나는 ming으로 설정함)

설치 완료 후 HeidiSQL을 실행시켜 신규 버튼을 눌러 세션을 추가해주고,

다른부분은 건들지 않고 전에 설정해둔 비밀번호를 입력하여 열기버튼을 누른다.

pymysql 빨간줄뜨면 install해준다.

웹(config)의 urls에 경로를 추가해주고

 

DB설정을 위해 웹앱(conn)의 models.py에 위에서 생성한 테이블을 참고해서 작성하고

DB설정을 보여주는 명령을 터미널에 입력해 확인 후 class Meta부분을 models.py에 추가해준다.

python manage.py inspectdb

class Meta:
    managed = False
    db_table = 'member'

 

pip install mysqlclient==1.3.12

 

 

templates디렉토리를 만들어주고, 그 안에 dbconn.html을 추가하여 내용을 입력해준다.

 

views에 dbconn함수를 만들어준다.

 

서버를 실행시켜 MariaDB에서 입력한 id와 pw가 화면에 출력되는 것을 확인한다.

 python manage.py runserver

결과화면


위에서는 DB에 입력한 값을 화면에 출력할 수 있도록 만들어보았다.

이번에는 서버의 화면에서 입력한 값이 DB에 추가되는것을 확인하도록 하겠다.

urls.py에 경로 추가

conn앱에 forms.py 파일을 추가한 뒤

아래의 내용을 추가해준다.

from django import forms

class MemberForm(forms.Form):
    id = forms.CharField(label='id', max_length=10)
    pw = forms.CharField(label='pw')

 

templates에 for.html을 만들어 아래의 내용을 추가해준다.

<form action="{% url 'form_test' %}" method="post">
    {% csrf_token %}
    {{ form | linebreaks }}
        <!--views.py에서 보낸 form을 출력 -->
        <!--줄바꿈작업을 하려면 | linebreaks를 사용한다-->

    <input type="submit" value="submit" name="submit">

</form>

form_test경로로 이동시에 실행되는 views파일에 아래의 내용을 추가해준다.

def form_test(request):
    if request.method == 'POST':
        form = MemberForm(request.POST)
        if form.is_valid(): #조건이 만족되면(max_length, ...)
            obj = Member(id=form.data['id'],pw=form.data['pw'])
                            #form에서 적은 id/pw값을 가져옴(form.data[])
            obj.save() #추가
            return HttpResponse('success')
        return HttpResponse('fail') #조건이 만족되지 않으면

    elif request.method == 'GET':
        form = MemberForm() #form은 일종의 전역변수이기때문에 새로 생성해줘야 함
        return render(request, 'for.html', {'form':form})
    else:
        pass

 

결과화면 출력
DB에 추가된 것을 확인할 수 있다.

 

'dev > Django' 카테고리의 다른 글

[Django]음식점 페이지 만들어보기~2_비밀번호 추가  (0) 2022.02.15
[Django]ORM(Object-relational mapping)  (0) 2022.02.08
[Django]admin.py  (0) 2022.02.08
[Django]Model Form  (0) 2022.02.06
[Django]HttpResponse / render  (0) 2022.02.06