[Django]Django + SQL 연동

shlim55·2026년 5월 6일

Django

목록 보기
1/3

Django, 크롤링, 데이터분석

1.Django 기본개념

파이썬 언어지만 도구일뿐

장고 - 웹서비스 개발할때 백엔드 스프링/스프링부트랑 같은 개념

전과정 경험해볼것.

서버와 프론트엔드 통신 api를 통해서

next js => 해당 파일 경로가 굉장히 복잡함 어디가 어딨는지

이래서 프론트랑 백엔드 분리해서 함 보안상 강력함

Django웹 개발 + AI
1. 아나콘다 python 3.11
가상황경 : p311_crawling
개발 경로 : c:\ai_exam\002_crawling

  1. 가상환경 생성
    conda create -n p311_crawling python=3.11
  2. Django 프레임워크 설치
    pip install django
    (1) 버전확인
    django-admin --version
    * 주의사항
    프로젝트 경로에 아무것도 있으면 안됨
    (2) Django 프로젝트를 생성
    django-admin startproject crawling .
    ->
  이렇게 파일하나가 생김
(3) 개발 테스트 서버 가동
  python manage.py runserver->db.sqlite3가 생성됨 
 

이렇게8000번 포트로 들어가면 잘 들어감

 python manage.py runserver 0.0.0.0:9000 -> 아무나 다 들어오는데9000번
 http://192.168.1.100:9000

(4) 장고에서는 모든 설정(setting)
=> 프로젝트명/settings.py 방화벽 세팅 외부 들어오는거 세팅 등등 각종 세팅

28줄이렇게 수정

  
ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']# 이렇게 수정 하면 다 허용 프론트 주소만 입력해야 함

(5) 언어 설정

LANGUAGE_CODE = "ko-kr"

TIME_ZONE = "Asia/Seoul"


이렇게 한국어로 바뀜

<장고구조>
프로젝트파일(웹 서비스 가동)
+ 앱 (회원관리)
+ 엡 (API)
+ 앱 (관리자페이지)
+ 앱 (크롤링서비스)
파이썬 웹서비스 : Django(제일많이 쓰고, 규칙이 딱 있다.), Flask(규정없이 자유롭게 만들때, 자유도가 너무 높은게 단점 그래서 잘 안씀), FastAPI(Api 기능만 개발하는 경우)

(6) 앱(서비스) 추가
크롤링
django-admin startapp webcrawl
하면 이렇게 딱 폴더가 생김

sqlite3->test db 딱 한명만 접속 가능하다 함

crawling/urls.py

from django.contrib import admin

from django.urls ![](https://velog.velcdn.com/images/shlim55/post/65b6f80b-be04-4bd7-a1fc-e8b621afda17/image.png)
import path

  

urlpatterns = [

    path("admin/", admin.site.urls),

]

밑에처럼 수정

from django.contrib import admin

from django.urls import include, path

  

urlpatterns = [    

    path("admin/", admin.site.urls),

    path("webcrawl/",include('webcrawl.urls')), # webcrawl 폴더에 urls이란 파일이있어야 열린다는뜻

]

]

No module named...

(7) 새로운 앱 경로를 설정하는 urls.py
/webcrawl/urls.py

from django.urls import path

  

from . import views

  

urlpatterns = [

    path('', views.index, name='index')

]

(8) 화면 설계 views.py
/webcrawl/views.py

from django.shortcuts import render



# Create your views here.

from django.http import HttpResponse

  

def index(request):

    return HttpResponse("안녕하세요. webcdrawl 페이지 입니다.") # Http 응답을 보낸다는 뜻

Starting development server at http://0.0.0.0:9000/
Quit the server with CTRL-BREAK.

http://localhost:9000/webcrawl/ 이렇게 하면 잘 뜰거임

http://localhost:9000/webcrawl/abc/ 했을 때 아까 그 페이지가 나올려면??

이렇게 수정

from django.urls import path

  

from . import views

  

urlpatterns = [

    path('abc', views.index, name='index')

]


http://localhost:9000/
이게 메인페이지가 될려면??

"""

URL configuration for crawling project.

  

The `urlpatterns` list routes URLs to views. For more information please see:

    https://docs.djangoproject.com/en/5.2/topics/http/urls/

Examples:

Function views

    1. Add an import:  from my_app import views

    2. Add a URL to urlpatterns:  path('', views.home, name='home')

Class-based views

    1. Add an import:  from other_app.views import Home

    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')

Including another URLconf

    1. Import the include() function: from django.urls import include, path

    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))

"""

  

from django.contrib import admin

from django.urls import include, path

  

urlpatterns = [    

    path("admin/", admin.site.urls),

    path("",include('webcrawl.urls')), # webcrawl/이라는 url로 접속 가능하게 함 webcrawl 폴더에 urls이란 파일이있어야 열린다는뜻

]

23줄 "" 이렇게 수정하면 됨


<챗봇 서비스 화면>

AI 챗봇을 만드려는데 html을 만들어줘.(X)
AI 챗봇을 만드려고 하는데...-> 제로샷이 아닌 퓨샷으로 하기

AI챗봇을 만드려고 아래 부분을 참조해서 제작해줘.
1. Chatgpt 같은 채팅화면으로 화면을 설계 해줘.
2. 디자인은 네이버의 구성 스타일을 참조해서 설계해줘.
3. html을 tailwindcss 프레임워크를 적용해서 제작해줘.
4. 팝업창, 새창은 Sweetalert2를 이용해서 제작해줘.
5. 제작된 디자인은 반응형으로 제작해줘.
6. API는 gemini API를 사용할 수 있게 제작해줘.
7. 데이터 처리는 axios를 사용해서 제작해줘.
8. gemini API 처리된 프로그램은 아래 소스를 참조해줘.


인공지능(Artificial Intelligence, AI)은 인간의 지적 능력을 모방하여 기계가 학습, 추론, 인지, 문제 해결 등의 작업을 수행할 수 있도록 하는 기술 또는 학문 분야입니다. 단순히 프로그래밍된 작업을 반복하는 것을 넘어, 스스로 데이터를 학습하고 판단하여 새로운 상황에 적응하거나 예측하는 능력을 포함합니다.


인공지능의 핵심 목표와 능력

인공지능의 궁극적인 목표는 인간의 지능을 이해하고 이를 기계에 구현하는 것입니다. 이를 위해 다음과 같은 지적 능력들을 기계에 부여하고자 합니다.

1. 학습 (Learning): 경험(데이터)을 통해 스스로 지식을 습득하고 성능을 향상시키는 능력.
2. 추론 (Reasoning): 주어진 정보를 바탕으로 논리적인 결론을 도출하는 능력.
3. 문제 해결 (Problem Solving): 특정 목표를 달성하기 위한 방법을 찾아내는 능력.
4. 지각/인지 (Perception): 시각(이미지), 청각(음성) 등 외부 환경으로부터 정보를 받아들이고 이해하는 능력.
5. 언어 이해 (Language Understanding): 인간의 자연어를 이해하고 생성하는 능력.
6. 의사 결정 (Decision Making): 다양한 선택지 중에서 최적의 결정을 내리는 능력.


인공지능의 주요 분야

인공지능은 광범위한 분야이며, 그 안에는 여러 세부 기술들이 존재합니다.

1. 기계 학습 (Machine Learning, ML):

  • AI의 핵심 분야 중 하나로, 데이터를 기반으로 학습하고 예측하는 알고리즘을 개발하는 기술입니다. 명시적으로 프로그래밍하지 않고도 컴퓨터가 스스로 학습할 수 있도록 합니다.
    지도 학습 (Supervised Learning): 정답이 있는 데이터를 학습하여 예측 모델을 만듭니다. (예: 이미지 분류, 스팸 메일 분류)
     비지도 학습 (Unsupervised Learning): 정답이 없는 데이터를 학습하여 데이터의 숨겨진 패턴이나 구조를 파악합니다. (예: 고객 세분화, 이상 탐지)
    강화 학습 (Reinforcement Learning): 시행착오를 통해 스스로 최적의 행동 전략을 학습합니다. (예: AlphaGo, 로봇 제어)

2. 딥러닝 (Deep Learning, DL):

  • 기계 학습의 한 종류로, 인간 뇌의 신경망을 모방한 인공 신경망(Artificial Neural Network)을 사용하여 대규모 데이터에서 복잡한 패턴을 학습하는 기술입니다.
  • 특히 이미지 인식, 음성 인식, 자연어 처리 등 비정형 데이터 처리에서 뛰어난 성능을 보이며 최근 AI 발전의 핵심 동력이 되고 있습니다.

3. 자연어 처리 (Natural Language Processing, NLP):

  • 기계가 인간의 언어를 이해하고 생성하며 번역하는 기술입니다.
  • 챗봇, 음성 비서(Siri, Google Assistant), 번역기, 감성 분석 등이 대표적인 응용 분야입니다.

4. 컴퓨터 비전 (Computer Vision, CV):

  • 기계가 이미지와 비디오를 '보고' 이해하고 해석하는 기술입니다.
  • 얼굴 인식, 객체 탐지, 자율 주행, 의료 영상 분석 등에 활용됩니다.

5. 로보틱스 (Robotics):

  • 인공지능 기술을 활용하여 물리적인 로봇을 설계, 제작, 제어하는 분야입니다. 인공지능의 지적 능력이 실제 물리적 세계에서 행동으로 구현되는 영역입니다.

인공지능의 작동 방식 (간단히)

기본적으로 AI는 대량의 데이터를 입력받아 특정 패턴을 학습하고, 이 학습된 패턴을 바탕으로 새로운 데이터에 대한 예측이나 판단을 내리는 방식으로 작동합니다. 알고리즘과 모델은 이 학습 과정을 효율적으로 수행하기 위한 도구입니다.


인공지능의 종류 (지능 수준에 따른 분류)

1. 약 인공지능 (Narrow AI / Weak AI):

  • 현재 우리가 접하는 대부분의 AI가 여기에 해당합니다. 특정 한 가지 작업에 특화되어 있으며, 그 작업에서 인간을 능가할 수도 있습니다. (예: AlphaGo, Siri, 추천 시스템, 자율 주행)

2. 강 인공지능 (General AI / Strong AI):

  • 아직은 구현되지 않은 미래의 목표입니다. 인간처럼 다양한 지적 작업을 수행하고 새로운 문제를 스스로 학습하고 해결할 수 있는, 범용적인 지능을 가진 AI를 의미합니다.

3. 초인공지능 (Superintelligence):

  • 인간의 지능을 초월하는 가상의 AI로, 모든 면에서 인간보다 뛰어난 지능을 가진 존재를 의미합니다.

인공지능의 중요성과 미래

인공지능은 현재 다양한 산업 분야에서 생산성 향상, 새로운 가치 창출, 복잡한 문제 해결에 기여하고 있습니다. 의료 진단, 금융 사기 탐지, 제조 공정 최적화, 맞춤형 교육 등 그 활용 범위는 무궁무진합니다.

미래에는 인공지능이 사회 전반에 걸쳐 혁신을 주도하고 있으며, 인간의 삶의 질을 향상시키고 인류가 당면한 문제들을 해결하는 핵심 동력이 될 것으로 기대됩니다. 그러나 동시에 데이터 편향, 윤리적 문제, 일자리 변화 등 사회적, 윤리적 고려 사항들에 대한 깊은 논의와 대비도 필수적입니다.


결론적으로 인공지능은 단순히 기술을 넘어 인류의 미래와 삶의 방식을 근본적으로 변화시킬 잠재력을 가진 매우 중요하고 흥미로운 분야입니다.

http://localhost/aichatbot/
이런 경로치면 아까 챗봇 사이트가 뜨게 할려면?

(1) 앱추가
django-admin startapp aichatbot
(2) urls.py연결
/crawling/urls.py 수정
/aichatbot/urls.py 생성

(3)views.py 작업
/aichatbot/view.py <- /webcrawl/views.py

(4)서버 가동
python manage.py runserver

(9)crawling/settings.py templates 경로 설정
INSTALLED_APPS = [

    "django.contrib.admin",

    "django.contrib.auth",

    "django.contrib.contenttypes",

    "django.contrib.sessions",

    "django.contrib.messages",

    "django.contrib.staticfiles",

    "aichatbot",  # 내가 만든 것 추가

]

templates 폴더생성 html 파일 모아 놓은 곳
aichatbot 폴더 하나 더생성한담에 ai_chat.html 넣기

extensions에 django template 검색

import os -> 외부와의 연동 필요

settings.py 59줄 수정

        "DIRS": [os.path.join(BASE_DIR, 'templates')],

복잡한 코딩은 ai가 더 잘한다 프레임워크 잘쓰는법을 익히기


<영화 데이터베이스 검색>
google -> "imdb"

google -> "google dataset search"

Oracle, MySQL, MariaDB ....

Oracle 쓰는 이유? -> 은행, 금융권 동시성, 오류가 나면 안되는 상황

->mysql client 클릭 -> 루트 암호

(1) 데이터베이스가 어떤 것이 있는지 확인하는 명령
show databases;

(2) 데이터베이스 자체를 삭제(drop)
진짜 고민하고 쓸것
drop database test;

(3) 데이터베이스에 들어가는 명령어
use mysql;

(4) mysql 데이터베이스 안에 있는 테이블을 보면 명령어
(show tables)
show tables;

데이터베이스 만들기

[o]데이터베이스명 : webcrawldb
[o]사용자 : webcrawl
[o]암호 : 1234
[o]포트 : 3306
[o]서버 : localhost

(5) 데이터베이스 생성 : create
create database webcrawldb;

(6) 사용자 생성
create user 'webcrawl'@'localhost' identified by '1234';
create user 'webcrawl'@'%' identified by '1234';

(7) 사용자가 사용할 데이터베이스를 지정(grant)
grant all privileges on webcrawldb. to 'webcrawl'@'localhost';
grant all privileges on webcrawldb.
to 'webcrawl'@'%';

(8) 승인
flush privileges;

(9) 생성한 데이터베이스 확인
mysql -u webcrawl -p webcrawldb

<데이터베이스 접근>
google -> "mysql workbench"

Connection Name : 영화분석DB
Hostname : 127.0.0.1
Username : webcrawl
Default Schema : webcrawldb

db 연결 settings.py

DATABASES = {

    "default": {

        "ENGINE": "django.db.backends.sqlite3",

        "NAME": BASE_DIR / "db.sqlite3",

    }

}
DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',  # MariaDB uses the MySQL backend

        'NAME': 'webcrawldb',               # The name of the database you created

        'USER': 'webcrawl',

        'PASSWORD': '1234',

        'HOST': '127.0.0.1',                  # Or your server IP

        'PORT': '3306',                       # Default MariaDB port

        'OPTIONS': {

            # 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",

            'charset': 'utf8mb4',

        },

    }

}

django pymysql settings.py 검색

mysql database 연동

pip install pymysql


import pymysql
pymysql.install_as_MySQLdb()

(10) Django가 제공하는 기본 테이블 만들기
python manage.py migrate

(11) 관리자 생성
python manage.py createsuperuser


profile
A Normal Programmer

0개의 댓글