Class에서 Foreignkey 사용

from django.db import models
import datetime
from django.utils import timezone

class Imform(models.Model):
    author=models.ForeignKey('auth.User')
    myname=models.CharField(max_length=100)
    mynum=models.TextField()
    created_date=models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.mynum

class Person(models.Model):
    myname2=models.ForeignKey(Imform)
    Shi=(
    ('s','Small'),
    ('l','Large')
    )
    name=models.CharField(max_length=60)
    shi=models.CharField(max_length=1,choices=Shi)

위에서 Imform 의 str에 해당하는 mynum값이 person의 myname2란에 나타남.

Pasted Graphic 1.tiff

Pasted Graphic 2.tiff

 

AWS EB에 django app 배포하기

참고 : https://youtu.be/L5LDS0vhpZ8

Pasted Graphic.tiff

1. 루트 디렉토리에 .ebextensions/django.config 를 만든다.
내용은

container_commands:
01_migrate:
command: "python manage.py migrate"
02_collectstatic:
command: "python manage.py collectstatic --noinput"
03_createsu:
command: "python manage.py createsu"
leader_only: true
04_chmod_sqlite:
command: "chmod 666 db.sqlite3"
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: mysite/wsgi.py

이다.

2. noti/management/commands/createsu.py 를 만든다.
Pasted Graphic 1.tiff

내용은

from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
class Command(BaseCommand):
def handle(self, *args, **options):
if not User.objects.filter(username="admin").exists():
User.objects.create_superuser("admin","id@gmail.com","password")

이다. 이때 색칠한 두부분은 일치시킨다.

3.
Pasted Graphic_1.tiff
위의 부분을 압축시킨다. (이때 상위폴더인 mysite를 압축시키면 안되고 위의 클릭한 부분이 최상위 폴더가 되도록 압축한다.!)

4. EB에 위의 .zip파일을 등록하면 된다.

가상환경에서 django설정

python3 -m venv (폴더명)

예) python3 -m venv myvenv

라 하면

현재 폴더에 가상환경 폴더인 myvenv 가 만들어진다.

django%ec%84%a4%ec%b9%98-mac-0

이제 여기에

source myvenv/bin/activate

로 가상환경을 활성화한 뒤,

install django 를 통해 장고를 설치한다.

django%ec%84%a4%ec%b9%98-mac-1

라 하면

와 같이 mysite 라는 폴더가 만들어진다.

django%ec%84%a4%ec%b9%98-mac-2

mysite 폴더안에는

django%ec%84%a4%ec%b9%98-mac-3

와 같은 파일들이 생성된다.

Parametric Surface

이때, 일 때와 일 때의 곡선을 같이 그리면 다음과 같다.


import numpy as np
import matplotlib.pyplot as plt
import math
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D

u_range=np.linspace(0,math.pi*2,60)
v_range=np.linspace(-3,3,60)

U,V =np.meshgrid(u_range,v_range)

fig=plt.figure()
ax=fig.gca(projection='3d')
X=2*np.cos(U)
Y=V
Z=2*np.sin(U)

x1=2*np.cos(u_range)
y1=0*v_range+1
z1=2*np.sin(u_range)

x2=2*np.cos(u_range*0+1)
y2=v_range
z2=2*np.sin(u_range*0+1)

ax.plot_surface(X,Y,Z,rstride=1, cstride=1,cmap=cm.Blues)
ax.plot(x1,y1,z1,color="red")
ax.plot(x2,y2,z2,color="yellow")
# ax.set_zlim3d(0,1)

plt.show()

para