컴퓨터/Python

생활코딩19~22강

풍경소리^^ 2019. 1. 27. 01:33

==========19.활용-form

    <a href="create.py">creat</a>
    <p><input type="text" name="title" placeholder="title"></p>
    <p><textarea rows="4" name="description" placeholder="description"></textarea></p>
    <p><input type="submit"</p>

----------url query string 아주 위험

    <form action="process_create.py">
        <a href="create.py">creat</a>
        <p><input type="text" name="title" placeholder="title"></p>
        <p><textarea rows="4" name="description" placeholder="description"></textarea></p>
        <p><input type="submit"</p>
    </form>
----------post방식으로 변경

<form action="process_create.py" method="post">

==========20.활용-전송한 정보처리

----------
form = cgi.FieldStorage()
title=form["title"].value
description=form["description"].value
print(title,description)

----------

python3 file write검색

print(title,description)
opened_file=open('data/'+title,'w')
opened_file.write(description)

#Redirection
print("Location: index.py?id="+title+"\n")

==========21.활용-수정구현

if 'id' in form:
    pageId=form["id"].value
    description=open('data/'+pageId,'r').read()
    update_link='<a href="update.py?id={}">update</a>'.format(pageId)
else:
    pageId='Welcome'
    description='Hello, WEB'
    update_link=''

----------

    <form action="process_create.py" method="post">
        <a href="create.py">creat</a>
        <p><input type="text" name="title" placeholder="title" value="{form_default_title}"></p>
        <p><textarea rows="4" name="description" placeholder="description">{form_default_description}</textarea></p>
        <p><input type="submit"</p>
    </form>

...

'''.format(title=pageId, desc=description,listStr=listStr,form_default_title=pageId,form_default_description=description))

----------

    <a href="create.py">creat</a>
    <form action="process_update.py" method="post">
        <input type="hidden" name="pageId" value="{form_default_title}">
        <p><input type="text" name="title" placeholder="title" value="{form_default_title}"></p>
        <p><textarea rows="4" name="description" placeholder="description">{form_default_description}</textarea></p>
        <p><input type="submit"</p>
    </form>

----------process_update.py

#!python
#print("Content-Type: text/html\n")
import cgi
form = cgi.FieldStorage()
pageId=form["pageId"].value
title=form["title"].value
description=form["description"].value

#print(title,description)
opened_file=open('data/'+pageId,'w')
opened_file.write(description)

print("Location: index.py?id="+title+"\n")

---------python3 file rename검색

import cgi, os

os.rename('data/'+pageId,'data/'+title)

----------정리하면

----------index.py

#!python
print("Content-Type: text/html\n")
import cgi, os
files=os.listdir('data')
#print(files)
listStr=''
for item in files:
    listStr=listStr+'<li><a href="index.py?id={name}">{name}</a></li>'.format(name=item)
#print(listStr)
form = cgi.FieldStorage()
if 'id' in form:
    pageId=form["id"].value
    description=open('data/'+pageId,'r').read()
    update_link='<a href="update.py?id={}">update</a>'.format(pageId)
else:
    pageId='Welcome'
    description='Hello, WEB'
    update_link=''
print('''
<!doctype html>
<html>
<head>
    <title>WEB1 - Welcome</title>
    <meta charset="utf-8">
</head>
<body>
    <h1><a href="index.py">WEB</a></h1>
    <ol>
        {listStr}
    </ol>
    <a href="create.py">creat</a>
    {update_link}
    <h2>{title}</h2>
    <p>{desc}</p>
</body>
</html>
'''.format(title=pageId, desc=description,listStr=listStr,update_link=update_link))#query string
----------create.py

#!python
print("Content-Type: text/html\n")
import cgi, os
files=os.listdir('data')
#print(files)
listStr=''
for item in files:
    listStr=listStr+'<li><a href="index.py?id={name}">{name}</a></li>'.format(name=item)
#print(listStr)
form = cgi.FieldStorage()
if 'id' in form:
    pageId=form["id"].value
    description=open('data/'+pageId,'r').read()
else:
    pageId='Welcome'
    description='Hello, WEB'
print('''
<!doctype html>
<html>
<head>
    <title>WEB1 - Welcome</title>
    <meta charset="utf-8">
</head>
<body>
    <h1><a href="index.py">WEB</a></h1>
    <ol>
        {listStr}
    </ol>
    <form action="process_create.py" method="post">
        <a href="create.py">creat</a>
        <p><input type="text" name="title" placeholder="title"></p>
        <p><textarea rows="4" name="description" placeholder="description"></textarea></p>
        <p><input type="submit"</p>
    </form>
</body>
</html>
'''.format(title=pageId, desc=description,listStr=listStr))#query string

----------update.py

#!python
print("Content-Type: text/html\n")
import cgi, os
files=os.listdir('data')
#print(files)
listStr=''
for item in files:
    listStr=listStr+'<li><a href="index.py?id={name}">{name}</a></li>'.format(name=item)
#print(listStr)
form = cgi.FieldStorage()
if 'id' in form:
    pageId=form["id"].value
    description=open('data/'+pageId,'r').read()
else:
    pageId='Welcome'
    description='Hello, WEB'
print('''
<!doctype html>
<html>
<head>
    <title>WEB1 - Welcome</title>
    <meta charset="utf-8">
</head>
<body>
    <h1><a href="index.py">WEB</a></h1>
    <ol>
        {listStr}
    </ol>
    <a href="create.py">creat</a>
    <form action="process_update.py" method="post">
        <input type="hidden" name="pageId" value="{form_default_title}">
        <p><input type="text" name="title" placeholder="title" value="{form_default_title}"></p>
        <p><textarea rows="4" name="description" placeholder="description">{form_default_description}</textarea></p>
        <p><input type="submit"</p>
    </form>
</body>
</html>
'''.format(title=pageId, desc=description,listStr=listStr,form_default_title=pageId,form_default_description=description))#query string

----------process_create.py

#!python
#print("Content-Type: text/html\n")
import cgi, os
form = cgi.FieldStorage()
title=form["title"].value
description=form["description"].value

#print(title,description)
opened_file=open('data/'+title,'w')
opened_file.write(description)
opened_file.close()#이거 안하면 permition error남
#Redirection
print("Location: index.py?id="+title+"\n")
----------process_update.py

#!python

import cgi, os
form = cgi.FieldStorage()
pageId=form["pageId"].value
title=form["title"].value
description=form["description"].value

#print(title,description)
opened_file=open('data/'+pageId,'w')
opened_file.write(description)
opened_file.close()#이거 안하면 permition error남
os.rename('data/'+pageId,'data/'+title)

#Redirection
print("Location: index.py?id="+title+"\n")
https://opentutorials.org/course/3256/19893

=========22.활용-삭제구현

form = cgi.FieldStorage()
if 'id' in form:
    pageId=form["id"].value
    description=open('data/'+pageId,'r').read()
    update_link='<a href="update.py?id={}">update</a>'.format(pageId)
    delete_action='''
        <form action="process_delete.py" method="post">
            <input type="hidden" name="pageId" value="{}">
            <input type="submit" value="delete">
        </form>
        '''.format(pageId)
else:
    pageId='Welcome'
    description='Hello, WEB'
    update_link=''
    delete_action=''

----------

    <a href="create.py">creat</a>
    {update_link}
    {delete_action}
    <h2>{title}</h2>
    <p>{desc}</p>
</body>
</html>
'''.format(title=pageId, desc=description,listStr=listStr,update_link=update_link,delete_action=delete_action))#query string
----------python3 file delete검색

----------process_delete.py

#!python
#print("Content-Type: text/html\n")
import cgi, os
form = cgi.FieldStorage()
pageId=form["pageId"].value

os.remove('data/'+pageId)

#Redirection
print("Location: index.py\n")