Форум сайта python.su
class Mydocuments(models.Model): docfile = models.FileField(upload_to='')
class DocumentForm(forms.Form): class Meta: model = Mydocuments fields = ['docfile']
def list(request): # Handle file upload if request.method == 'POST': form = DocumentForm(request.POST, request.FILES) if form.is_valid(): print(request.POST) newdoc = Mydocuments(docfile = request.FILES['docfile']) newdoc.save() # Redirect to the document list after POST return HttpResponseRedirect(reverse('contact_info.views.list')) else: form = DocumentForm() # A empty, unbound form # Load documents for the list page documents = Mydocuments.objects.all() # Render list page with the documents and the form return render_to_response('list.html' ,{'documents': documents, 'form': form}, context_instance=RequestContext(request))
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Minimal Django File Upload Example</title> </head> <body> {% if documents %} <ul> <img src="{{ documents.docfile.url }}" width=200;/> </ul> {% else %} <p>No documents.</p> {% endif %} <form action="" method="post" enctype="multipart/form-data"> {% csrf_token %} <p>{{ form.non_field_errors }}</p> <p>{{ form.docfile.label_tag }} {{ form.docfile.help_text }}</p> <p> {{ form.docfile.errors }} {{ form.docfile }} </p> <p><input type="submit" value="Upload" /></p> </form> </body> </html>
# coding: utf8 from random import randint import networkx as nx import matplotlib.pyplot as plt btree = nx.balanced_tree(randint(1, 5), 2) print(btree.edges()) print(btree.nodes()) pos = nx.graphviz_layout(btree, prog='dot') nx.draw(btree, pos, with_labels=True, arrows=False) plt.savefig("path_graph_cities.png")
from django.core.cache import cache
cache.set("foo", "value", timeout=25)
":1:foo"
from sys import stdin data = ' '.join(stdin.read()).split() # преобразуем строку в список подстрок index = 0 # нулевой индекс как точка старта while index < len(data) - 1: # крутим пока есть хоть одна пара для проверки if data[index] == data[index + 1]: # проверяем соседние буквы del data[index:index + 2] # удаляем если соседние символы равны index -= 1 # возвращаемся на шаг назад, на случай, если после удаления среза, соседние символы оказались равны if index < 0: # страхуемся от отрицательного индекса index = 0 else: index += 1 # если удаления не было, продвигаемся на шаг вперёд print(''.join(data))
""" Реализует веб-интерфейс для просмотра и изменения экземпляров классов в хранилище; хранилище находится на сервере (или на том же компьютере, если используется имя localhost) """ import cgi, shelve, sys, os # cgi.test() выведет поля ввода shelvename = 'class-shelve' # файлы хранилища находятся # в текущем каталоге fieldnames = ('name', 'age', 'job', 'pay') form = cgi.FieldStorage() #парсинг данных формы print('Content-type: text/html')#заголовок + пустая строка для ответа sys.path.insert(0, os.getcwd()) #благодаря этому модуль pickle #и сам сценарий будут способны #импортировать модуль person # главный шаблон разметки html replyhtml = """ <html> <title>People Input Form</title> <body> <form method=POST action="peoplecgi.py"> <table> <tr><th>key<td><input type=text name=key value="%(key)s"> $ROWS$ </table> <p> <input type=submit value="Fetch", name=action> <input type=submit value="Update", name=action> </form> </body></html> """ # вставить разметку html с данными в позицию $ROWS$ rowhtml = '<tr><th>%s<td><input type=text name=%s value="%%(%s)s">\n' rowshtml = '' for fieldname in fieldnames: rowshtml += (rowhtml % ((fieldname,) * 3)) replyhtml = replyhtml.replace('$ROWS$', rowshtml) def htmlize(adict): new = adict.copy() #значения могут содержать &, > for field in fieldnames: #и другие специальные символы, value = new[field] #отображаемые особым образом; new[field] = cgi.escape(repr(value)) #их необходимо экранировать return new def fetchRecord(db, form): try: key = form['key'].value record = db[key] fields = record.__dict__ # для заполнения строки ответа fields['key'] = key # использовать словарь атрибутов except: fields = dict.fromkeys(fieldnames, '?') fields['key'] = 'Missing or invalid key!' return fields def updateRecord(db, form): if not 'key' in form: fields = dict.fromkeys(fieldnames, '?') fields['key'] = 'Missing key input!' else: key = form['key'].value if key in db: record = db[key] # изменить существующую запись else: from person import Person # создать/сохранить новую record = Person(name='?', age='?') # eval: строки должны быть # заключены в кавычки for field in fieldnames: setattr(record, field, eval(form[field].value)) db[key] = record fields = record.__dict__ fields['key'] = key return fields db = shelve.open(shelvename) action = form['action'].value if 'action' in form else None if action == 'Fetch': fields = fetchRecord(db, form) elif action == 'Update': fields = updateRecord(db, form) else: fields = dict.fromkeys(fieldnames, '?') # недопустимое значение fields['key'] = 'Missing or invalid action!' # кнопки отправки формы db.close() print(replyhtml % htmlize(fields)) # заполнить фо
files = file( "/dev/bus/usb/001/003" );
while True:
for c in files.read(3):
print ord(c)