■ 각 질문 선택 항목를 라디오 버튼으로 표시한다. 각 라디오 버튼의 value는 연관된 질문 선택 항목의 ID이다. 각 라디오 버튼의 name은"choice"이므로 누군가가 라디오 버튼 중 하나를 선택해 폼을 제출하면, POST 데이터인choice=#을 보낼 것이다. 여기서 #은 선택한 항목의 ID이다.
■ 폼의 action을 {%url 'polls:vote' question.id%}로 설정하고method="post"를 설정한다(metho="get"이 아니라). method="post"를 사용한다는 점이 굉장히 중요하다. 그 이유는 폼의 송신은 서버쪽의 데이터의 갱신으로 연결되기 때문이다. 서버쪽의 데이터를 갱신하는 폼을 작성할 경우는 method="post"을사용하자. 이것은 장고 고유의 특징이 아닌 웹 개발에 전체에 통용되는 것이다.
■ forloop.counter은 for태그의 루프가 몇 번 실행되었는지 표시하는 값이다.
■ (데이터가 변조될 위험이 있는) POST 폼을 작성하고 있으므로, Cross Site Request Forgeries에 대해 신경써야할 필요가 있다. 다행히도, 장고가 이에 대해 대응하기 위해 사용하기 쉬운 구성품을 제공하고 있으므로 그렇게 걱정할 필요는 없다. 짧게 말하자면, 내부 URL 대상의 모든 POST 폼은 {% csrf_tokem %} 템플릿 태그를 써야한다.
import matplotlib.pyplot as plt
data = [1,2,3,4,3,2,1]
plt.figure('그래프 이름')
plt.plot(data)
plt.show()
import matplotlib.pyplot as plt
x = [10, 20, 30, 40, 50, 60, 70]
y = [1,2,3,4,5,2,1]
plt.figure('그래프 이름')
plt.plot(x,y)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
time = np.arange(0,10,0.01)
y = np.sin(time)
plt.figure('그래프 이름')
plt.plot(time,y)
plt.show()
이 코드의 arange는 0부터 10까지 0.01간격으로 등분
import matplotlib.pyplot as plt
import numpy as np
time = np.arange(0,10,0.01)
sin_y = np.sin(time)
cos_y = np.cos(time)
plt.figure('그래프 이름')
plt.plot(time,sin_y)
plt.plot(time,cos_y)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
time = np.arange(0,10,0.01)
sin_y = np.sin(time)
cos_y = np.cos(time)
plt.figure('sin, cos 그래프')
plt.plot(time,sin_y, label='sin')
plt.plot(time,cos_y,label='cos')
plt.legend() #범례
plt.xlabel('time')
plt.ylabel('value')
plt.title('sin, cos Grapeh') #그래프 이름
plt.grid() #그리드 설정
plt.show()
import matplotlib.pyplot as plt #막대 그래프
import numpy as np
data=[10,20,30,55]
x=[0,1,2,3]
plt.bar(x,data,width=0.3)
plt.show()
가로형 막대 랜덤 으로 생기기
1.
import matplotlib.pyplot as plt #막대 그래프
import numpy as np
y_data = []
x_data = []
for i in range(6):
x_data.append(i)
y_data.append(np.random.rand()*20)
plt.bar(x_data, y_data,width=0.5)
plt.show()
2.
import matplotlib.pyplot as plt #막대 그래프
import numpy as np
a = np.random.random(4)
data = np.random.random(4)
plt.bar(a,data,width=0.1)
가로형 막대 그리기
import matplotlib.pyplot as plt #막대 그래프
import numpy as np
data=[10,20,30,5]
x=[1,2,3,4]
plt.barh(x,data,height=0.3)
plt.show()
원형 그래프 그리기
import matplotlib.pyplot as plt #막대 그래프
import numpy as np
data=[10,20,30,5]
plt.pie(data)
plt.show()
with open('4.csv',"a") as f:
column = ','.join(columns) +"\n"
f.write(column)
for i in range(0,len(names)):
row =('%s,%s,%s\n')%(names[i], ages[i], address[i])
f.write(row)
from slackclient import SlackClient
import requests as rq
from bs4 import BeautifulSoup
import time
slack_token = 'xoxb-460297928240-2145122313062-cafL1R4QG7nFNRn4QMIrJeiR' #발급 받은 토큰
sc = SlackClient(slack_token)
#메세지 전달
def notification(message):
sc.api_call(
"chat.postMessage",
channel="#test", #{#채널}의 형태로 채널 지정
text=message
)