본문 바로가기

개인 프로젝트/FakeVerse

[Ai] 가짜 뉴스 생성기 개발 (1) - Django, Python3, HTML/CSS/JS

Django를... 아니 그냥 개발 자체를 넘 오랜만에 해서 다 까먹었다
그래서 복습하는 김에 작성하는 웹 개발 기록
 
먼저 만들 웹에 대해 간단히 설명하자면, 주제를 선택하면 해당 주제에 맞는 가짜 뉴스를 AI가 생성하도록 하는 것이다.
 
백엔드 공부를 위한 개발이라 프로토 타입은 신경 쓰지 않을 예정이다 ^,^ (디자인이 구리구리할 것이라는 뜻)


github 연결

github에 프로젝트를 생성 후, 링크를 복사하여 터미널에 명령어를 입력한다.

git clone 프로젝트링크

가상 환경 생성

python -m venv 가상환경이름

나는 myvenv로 설정하였다.

가상환경이름\Scripts\activate

\명령줄 앞에 (가상환경이름)이 뜬다면 가상 환경 활성화가 잘 된 것이다. 

python manage.py migrate

migrate는 DB를 쉽게 관리하기 위해 사용한다.

*장고 공식 문서에서는 마이그레이션이 모델의 변경 내역을 DB 스키마에 적용시키는 장고의 방법이라고 명시되어 있음.


Django 개발 환경 설정

Django 라이브러리를 다운받기 위해 터미널에 명령어를 입력한다.

pip install django

프로젝트 생성

우선 가장 큰 파일을 만들기 위해 fakeNews라는 이름의 프로젝트를 생성한다.

django-admin startproject fakeNews

 
그리고 서버가 잘 작동되는지 확인해 보자.

python manage.py runserver

 
 

메인 페이지 생성

fakeNews는 전체 틀이고, 그 안에 들어갈 페이지의 'App'들을 각각 만들어야 한다. (tree의 가지를 만든다고 생각하자.)
main이라는 App를 생성해 보자.

django-admin startproject main

 
참고로 경로는 fakeNews/fakeNews/main이어야 한다.
 
앱을 만들었으면 프로젝트에서도 사용할 수 있도록 등록을 해야 한다.
main/settings.py에서 INSTALLED_APPS의 마지막 줄에 main을 추가해 준다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'main',
]

 
이제 프론트 엔드를 작성할 자리를 미리 만들 것이다.
fakeNews/fakeNews/templates 폴더를 생성하여 html 파일을 생성한다.
! + tab을 누르면 자동 완성된다. 대충 페이지를 알아볼 수 있도록 표시만 해 두자.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>main page</title>
</head>
<body>
    
</body>
</html>

 
우리가 만들 html 파일을 인코딩해서 웹에 띄우는 작업을 수행하기 위해 main/views.py를 생성하여 다음 코드를 입력한다.

from django.shortcuts import render

def index(request):
    return render(request,'main/main.html')

 
views.py와 urls.py를 연결하기 위해 main/urls.py에 다음 코드를 추가한다.

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

 
추가하였으면 터미널에 다음 명령어를 치고 실행해 보자.

python manage.py runserver

 
오류가 뜨지 않으면 성공이다.
 
정확한 파일 위치 참조를 위한 중간 트리 공유 왜냐면내가여태까지격렬하게이거때문에오류를겪었기때문에...

C:.
|   db.sqlite3
|   manage.py
|   
+---fakeNews
|   |   asgi.py
|   |   settings.py
|   |   urls.py
|   |   wsgi.py
|   |   __init__.py
|   |
|   \---__pycache__
|           settings.cpython-313.pyc
|           urls.cpython-313.pyc
|           wsgi.cpython-313.pyc
|           __init__.cpython-313.pyc
|
+---main
|   |   asgi.py
|   |   manage.py
|   |   settings.py
|   |   urls.py
|   |   views.py
|   |   wsgi.py
|   |   __init__.py
|   |
|   \---__pycache__
|           urls.cpython-313.pyc
|           views.cpython-313.pyc
|           __init__.cpython-313.pyc
|
\---templates
    +---loding
    \---main
            main.htm

 
추가로, 위처럼 트리를 보는 명령어는 아래와 같다.

tree /F /A


다음 글은 celery 기초에 대한 글을 올릴 예정이다!