1

голосов
0

ответ
34

Просмотры

Scrapy | Performance - Need to reorder URLs based on domain?

Working on crawler which checks hundreds of websites and for every website hundreds of pages. I found a really big performance bottleneck. I have set a delay for domains so I'm sure that crawler doesn't send many requests to one website in short time. But here is a problem (at least I think it is the problem): When spider extract many urls from one domain, it filles the queue with these urls. If the number of urls at the end of the queue is bigger than number of CONCURRENT_REQUESTS, spider ends up crawling just one website - one by one url of this website. What I need is to be able to enqueue urls from another domains so it can use it's potential and doesn't have to wait until all urls of one website are requested. My solution: I think multiple queues could help. If there were separate request queue for every domain, spider could alternate the queues and wouldn't have to wait but I can't figure out how to do that. class MainSpider(CrawlSpider): name = 'main_spider' allowed_domains = [] max_depth = 2 example_start_urls = [ 'example.com','example2.com','example3.com'] def start_requests(self): for url in self.example_start_urls: domain = extract_dom(url) self.allowed_domains.append(domain) yield scrapy.Request(url, callback=self.parse_item, meta={'domain': domain, 'depth': 0}) def parse_item(self, response): depth = response.meta['depth'] d = response.meta['domain'] # DO SOMETHING if not depth >= self.max_depth: extractor = LinkExtractor(allow_domains=d.name) links = extractor.extract_links(response) for link in links: yield scrapy.Request(link.url, callback=self.parse_item, meta={'domain': d, 'depth': depth + 1}) EXPLANATION ON EXAMPLE Let's say CONCURENT_REQUESTS is set to 2. If crawler founds 20 links on example1.com website and CONCURRENT_REQUESTS_PER_DOMAIN = 1, it ends up scraping urls of this website one by one because there are 20 urls of this website enqueued. Instead of that, spider could alternate example1.com urls and example2.com urls so the process would be two times faster. How to do that?
Milano
1

голосов
0

ответ
69

Просмотры

Ошибка целостности вызвано сигналом: Джанго админ

У меня есть стандартная модель UserProfile, которая имеет OneToOneField поля для модели auth.User. Каждый пользователь должен иметь один и только один UserProfile, поэтому мне нужно UserProfile объект, который будет создан при ВСЕГДА Пользователь создан. Очевидное решение состоит в создании post_save Сингаля: @receiver (post_save, отправитель = User) Защита create_user_profile (отправитель, экземпляр, созданный, ** kwargs): если создано: UserProfile.objects.get_or_create (пользователь = экземпляр) ПРОБЛЕМА: Этот подход работает, когда пользователь зарегистрирован себя или когда пользователь был создан программно (например, с помощью оболочки). Проблема заключается в том, когда пользователь создается с помощью Джанго-администратора. Она поднимает: продублировать значение ключа нарушает ограничение уникальности "main_userprofile_user_id_key" ДЕТАЛЬ: Key (user_id) = (30), уже существует. Я' Ве добавил UserProfile встроенный в страницу пользователя администратора, который означает, что существуют две формы - для создания пользователя и для создания UserProfile. admin.site.unregister (Пользователь) Класс UserProfileInline (admin.StackedInline): модель = UserProfile класс UserAdmin (BaseUserAdmin): fieldsets = ((None, { 'поля': ( 'имя пользователя', 'пароль')}), # ( _ ( 'Личные данные'), { 'поля': ( 'First_name', 'Last_name', 'электронной почты')}), (_ ( 'Важные даты'), { 'поля': ( 'last_login', «date_joined ')})) # упорядоченность = (' имя пользователя»,) встраивает = [UserProfileInline] list_display = [ 'ID', 'имя пользователя', 'userprofile__display_name', 'last_login'] Теперь, когда админы создания нового пользователя с помощью Джанго-администратора и заполняют, по меньшей мере, один UserProfile поля формы, Джанго пытается создать UserProfile для пользователя в два раз, который возвращает ошибку. После того, как он будет создан из-сигнала и во второй раз, потому что было по крайней мере, одна форма поля UserProfile формы заполнены. Вы знаете, как заставить его работать? EDIT Я хотел бы добавить условие в сигнал: если не GetAttr (пример, «Userprofile»): # создать UserProfile но сигнал вызывается перед тем UserProfile ModelForm от администратора сохраняется, так что не поможет. Вы знаете, как заставить его работать? EDIT Я хотел бы добавить условие в сигнал: если не GetAttr (пример, «Userprofile»): # создать UserProfile но сигнал вызывается перед тем UserProfile ModelForm от администратора сохраняется, так что не поможет. Вы знаете, как заставить его работать? EDIT Я хотел бы добавить условие в сигнал: если не GetAttr (пример, «Userprofile»): # создать UserProfile но сигнал вызывается перед тем UserProfile ModelForm от администратора сохраняется, так что не поможет.
Milano
1

голосов
0

ответ
22

Просмотры

Джанго - создание XML-файла из шаблона - MemoryError

Я получаю MemoryError при попытке создать файл XML с помощью шаблонов Django. Класс экспорт (TimeStampedModel): xml_file = models.FileField (upload_to 'экспорт /' =, нуль = True, пустой = True) @classmethod Защиты generate_and_save (ЦБС): экспорт = Export.objects.create () строка = render_to_string ( 'экспортер /export.xml», { 'object_list': Product.objects.active) (}.) now_string = сейчас () STRFTIME ( '% d% м% Y_% H% M% S') export.xml_file.save (е "export_ {now_string} .xml", ContentFile (строка)) проблема очевидна. Есть сотни тысяч продуктов и весь оказываемых шаблон хранится в памяти, пока не будет записан в файл. Можно ли это сделать в кусках или потоке?
Milano
1

голосов
3

ответ
960

Просмотры

Выполнить Javascript с Python (OnClick)

Как я мог запустить JavaScript, который я нашел в HTML тег с питоном? Существует тег в HTML, который содержит JavaScript, который в настоящее время запуска после щелчка (OnClick). Вот пример: 0179 ... Anzeigen Что я должен сделать, чтобы запустить его и получать код, который виден после щелчка на этой кнопке? Я использую в основном BeautifulSoup. EDIT: Я знаю, как сделать это с помощью Selenium, но это совершенно излишним я думаю.
Milano
1

голосов
2

ответ
108

Просмотры

SQL - обновить основную таблицу, используя временную таблицу

У меня есть вопрос о SQL, особенно SQLite3. У меня есть две таблицы, давайте назовем их main_table и temp_table. Эти таблицы основаны на одной и той же схеме реляционной поэтому они имеют одни и те же столбцы, но разные строки (значения). Теперь то, что я хочу сделать: Для каждой строки main_table я хочу, чтобы заменить его, если есть строка в temp_table с тем же ID. В противном случае я хочу, чтобы сохранить старую строку в таблице. Я думал об использовании некоторых объединений, но это не дает, что я хочу. Вы дали бы мне совет? EDIT: ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Я хотел бы избежать написания всех столбцов, потому что эти таблицы conains десятки атрибутов и так как я должен обновить все столбцы, не может быть необходимо выписать все из них.
Milano
1

голосов
2

ответ
45

Просмотры

Сохранить след глубокого первого поиска

Я ищу некоторые данные в одной веб-странице, которая имеет такую ​​структуру дерева. Веб-страница содержит категории, каждый из этих категорий могут содержать другую категорию или быть листом (он содержит конкретные данные). Так что самый простой способ, вероятно, использовать рекурсию для поиска в этой структуре. Но я хочу, чтобы сохранить следы каждого листа, когда он находится. Так вот пример: url_of_1st_level_cat -> url_of_2nd_level_cat -> url_of_3rd_level_cat -> лист Я хочу, чтобы иметь возможность получить весь след листа, когда я обрабатывать этот лист. Поэтому, когда я получить лист, я могу сделать, например, find_trace (лист), который возвращает: [url_of_1st_level_cat, url_of_2nd_level_cat, url_of_3rd_level_cat] Вот псевдокод рекурсивной функции, которая ищет лавровый лист: Защиту find_leafs_of_category (самость, URL): подкатегории = самостоятельно. get_subcategories (URL) для подкатегории в подкатегории: если is_leaf (подкатегория): # DO STUFF еще: self.find_leafs_of_category (подкатегория) Есть ли у вас какие-либо идеи хорошего и простого решения этой проблемы? EDIT: Дерево должно быть упорядочено таким образом, когда возникает какая-то проблема, он может по-прежнему от того, где она закончилась. Более подробно: (AAC, AAB не настоящие имена категорий, они не могут быть прослежены, разделив их имена в реальном) A - AA ... - AB ... - AC - ACA ... - ACB ... - ACC ... - ACD - leaf1 - leaf2 - leaf3 ... Я использую метод find_leafs_of_category (A) Теперь, я хочу, чтобы делать вещи с этим лавровым листом. Поэтому обрабатывать лист, лист, лист ... leaf1, leaf2 и вдруг соединение было прервано.
Milano
1

голосов
1

ответ
23

Просмотры

UnicodeDecodeError при изменении таблицы

Я пытаюсь сделать автоматический альтер таблицы - добавление столбца, когда это необходимо. Проблема заключается в том, что я начал получать UnicodeDecodeError. Я не понимаю, почему эта ошибка поднимает. Почему он хочет использовать «ASCii» кодовую. Я попытался напечатать атр .__ class__ который печатает Юникод. Я уже пытался attr.decode ( «UTF-8»), но все та же проблема повышения. ЛИНИЯ: self.cur.execute ( "" "ALTER TABLE ADD данные КОЛОННА {} TEXT" "" формат (атр)) ВОЗВРАТ: UnicodeEncodeError: 'ASCII' кодек не может кодировать символ и '\ u010d' в положении 5: порядковый не в диапазоне (128) у меня есть # - * - кодирование: UTF-8 - * - на верхней части файла. Что я должен делать в этом случае? Можно ли узнать, какая кодировка используется? EDIT: Если я переписать альтер не использовать переменные, это работает.
Milano
1

голосов
1

ответ
2.1k

Просмотры

Py2exe - не может найти модули

Я хочу, чтобы создать файл программы с помощью модуля py2exe. Проблема заключается в том, что файл ех говорит, что не существует модуль ОС. Я положил его в включает в setup.py файл, поэтому он должен работать. Здесь не ошибка после запуска main.exe созданного py2exe импорта linecache ImportError: Нет модуль с именем linecache TraceBack (самый последний вызов последнего): Файл «main.py», линия 3, в ImportError: модуль не назвали ОС А вот моя установка .py: от distutils.core настройки импорта настройки импорта py2exe (консоль = [ "main.py"], опции = { "py2exe": { "включает в себя": [ "ОС", "linecache"]}},)
Milano
1

голосов
2

ответ
207

Просмотры

Bitbucket / Джанго - нет рефов общего и ни указанного; ничего не делать

Я пытаюсь создать новую Django с виртуальной средой и соединить его с Bitbucket хранилище, но у меня есть некоторые проблемы. Я буду писать здесь весь процесс, может быть, вы будете выяснить, где я не прав, и это может быть полезным форт других людей. Я использую для Windows 8.1 компакт-диск в папку, где мой проект будет кд C: \ Users \ Milano \ PycharmProjects \ Git_Projects Создать мой папку проекта C: \ Users \ Milano \ PycharmProjects \ Git_Projects> MkDir sfl_project кд sfl_project Создание виртуальной среды C: \ Пользователи \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> virtualenv venv Активация виртуальной среды C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> venv \ Scripts \ активировать Установка Django в виртуальной среде (venv) C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> пип установить проект Джанго Start Джанго (venv) C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> Джанго-админ startproject sfl_project C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> CD sfl_project Начало Django приложение (venv) C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project \ sfl_project> питон manage.py StartApp веб кд .. Initialise Git (venv) C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> мерзавец INIT Создать репозиторий на BitBucket Создать файл gitignore (venv) C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> эхо venv / >> gitignore И здесь, вероятно, проблема, насколько я знаю, я должен соединить sfl_repo с местной репо. (Venv) C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> мерзавец удаленного добавить происхождения https: //[email protected]/profile/sfl_repo.git -> OK (venv) C: \ Users \ Milano \ PycharmProjects \ Git_Projects \ sfl_project> GIT PUSH -u происхождения --all CMD ГОВОРИТ: Нет рефов в общий и ни указанного; ничего не делать. Может быть, вы должны указать ветви, такие как «мастера». Все уточненный Но у меня есть файлы там, например, приложение под названием сеть и другие файлы. Где может быть проблема?
Milano
1

голосов
1

ответ
449

Просмотры

Джанго - TypeError: _clone () занимает ровно 1 аргумент (3 дано)

Я пытаюсь установить django_quiz GitHub приложение в моем проекте Django. Я сделал все, что находится в риом файле «Установка», но это вызывает ошибку: возвращение супер (InheritanceQuerySetMixin, самость) ._ клон (Klass, настройку ** kwargs) TypeError: _clone () занимает ровно 1 аргумент (3 дано) Так что я питон пип установить подушки, пип установить Джанго-модель-Utils клонировать файл из GitHub в каталог папки Джанго (есть manage.py, приложение режа и т.д.). CD django_quiz питон setup.py инсталляцию добавил 'викторины', 'MULTICHOICE', 'true_false', 'эссе', чтобы INSTALLED_APPS добавил URL (г '^ д /', включают в себя ( 'quiz.urls')), в urlpatterns (URLs. р) После этого я попытался Python manage.py runserver и ошибки поднятой. Так что я уже пробовал делать makemigrations но случилась та же ошибка. Вот вся отслеживающий от CMD линии (после runserver): C: \ Users \ Milano \ PycharmProjects \ FutileStudio \ SolutionsForLanguages_2 \ venv \ Lib \ си т е-пакеты \ django_model_utils-2.0.3-py2.7.egg \ model_utils \ менеджеров .py: 106: Римо vedInDjango110Warning: «get_all_related_objects является неофициальным API, который имеет быть ан устаревшим. Вы можете быть в состоянии заменить его 'get_fields ()' отн для отн в model._meta.get_all_related_objects () C: \ Users \ Milano \ PycharmProjects \ FutileStudio \ SolutionsForLanguages_2 \ venv \ Lib \ си тэ-пакетов \ django_model_utils-2.0. 3-py2.7.egg \ model_utils \ managers.py: 106: Remo vedInDjango110Warning: «get_all_related_objects является неофициальным API, который имеет быть ан осуждается. Вы можете быть в состоянии заменить его «get_fields ()» отн для отн в model._meta.
Milano
1

голосов
1

ответ
73

Просмотры

Заменить все HTML атрибуты тега с регулярным выражением

Я пытаюсь понять, как я могу добавить атрибут ID = ID_ для всех тегов в HTML фрагмент и удалить другие атрибуты. Например: ... в: ... The DIV является имя тега в верхнем регистре и _1 означает упорядочение. Так что, если это будет второй тег, он будет иметь DIV_2 идентификатор. Упорядочение в ДФС смысл поэтому, если .. имеет какой-то ребенок, как ..., то уль тег будет иметь идентификатор: UL_3. Я пытался найти все теги, а затем удалить их атрибуты и по одному добавить их их идентификаторы. re.findall (г '] *>', фрагмент кода) Это находит все теги. Моя идея заключается в том, как: для я, тег Перечислим (теги):. Remove_all_attributes_from_tag получить имя тега и добавить набор атрибутов «{} _ {}» формат (tag_name.upper, я) Но не могу понять, как продолжить , Сниппает: Display5.20-inchProcessor2GHz окт-coreFront Camera8-megapixelResolution1080x1920 pixelsRAM3GBOSAndroid 6.
Milano
1

голосов
1

ответ
592

Просмотры

Memory allocation failed : growing buffer - Python

I'm working on a script which scrapes thousands of different web pages. Since these pages are usually different (has different sites), I use multithreading to speed up scraping. EDIT: SIMPLE SHORT EXPLANATION ------- I'm loading 300 urls (htmls) in one pool of 300 workers. Since the size of html is variable, sometimes, the sum of sizes is probably too big and python raises: internal buffer error : Memory allocation failed : growing buffer. I want to somehow check if this can happend and if, wait until the buffer is not full. ------- This approach works but sometimes, python starts to throw: internal buffer error : Memory allocation failed : growing buffer internal buffer error : Memory allocation failed : growing buffer internal buffer error : Memory allocation failed : growing buffer internal buffer error : Memory allocation failed : growing buffer internal buffer internal buffer error : Memory allocation failed : growing buffer internal buffer error : Memory allocation failed : growing buffer error : Memory allocation failed : growing buffer internal buffer error : Memory allocation failed : growing buffer internal buffer error : Memory allocation failed : growing buffer internal buffer error : Memory allocation failed : growing buffer into console. I suppose that it is because of size of html I store in memory, which can be 300*(for example 1mb) = 300mb EDIT: I know that I can decrease number of workers and I will. But it's not a solution, there would be just lower chance to get such error. I want to avoid this error at all... I started to log html sizes: ram_logger.debug('SIZE: {}'.format(sys.getsizeof(html))) And the result is (part): 2017-03-05 13:02:04,914 DEBUG SIZE: 243940 2017-03-05 13:02:05,023 DEBUG SIZE: 138384 2017-03-05 13:02:05,026 DEBUG SIZE: 1185964 2017-03-05 13:02:05,141 DEBUG SIZE: 1203715 2017-03-05 13:02:05,213 DEBUG SIZE: 291415 2017-03-05 13:02:05,213 DEBUG SIZE: 287030 2017-03-05 13:02:05,224 DEBUG SIZE: 1192165 2017-03-05 13:02:05,230 DEBUG SIZE: 1193751 2017-03-05 13:02:05,234 DEBUG SIZE: 359193 2017-03-05 13:02:05,247 DEBUG SIZE: 23703 2017-03-05 13:02:05,252 DEBUG SIZE: 24606 2017-03-05 13:02:05,275 DEBUG SIZE: 302388 2017-03-05 13:02:05,329 DEBUG SIZE: 334925 This is my simplified scraping approach: def scrape_chunk(chunk): pool = Pool(300) results = pool.map(scrape_chunk_item, chunk) pool.close() pool.join() return results def scrape_chunk_item(item): root_result = _load_root(item.get('url')) # parse using xpath and return And the function to load html: def _load_root(url): for i in xrange(settings.ENGINE_NUMBER_OF_CONNECTION_ATTEMPTS): try: headers = requests.utils.default_headers() headers['User-Agent'] = ua.chrome r = requests.get(url, timeout=(settings.ENGINE_SCRAPER_REQUEST_TIMEOUT + i, 10 + i), verify=False, ) r.raise_for_status() except requests.Timeout as e: if i >= settings.ENGINE_NUMBER_OF_CONNECTION_ATTEMPTS - 1: tb = traceback.format_exc() return {'success': False, 'root': None, 'error': 'timeout', 'traceback': tb} except Exception: tb = traceback.format_exc() return {'success': False, 'root': None, 'error': 'unknown_error', 'traceback': tb} else: break r.encoding = 'utf-8' html = r.content ram_logger.debug('SIZE: {}'.format(sys.getsizeof(html))) try: root = etree.fromstring(html, etree.HTMLParser()) except Exception: tb = traceback.format_exc() return {'success': False, 'root': None, 'error': 'root_error', 'traceback': tb} return {'success': True, 'root': root} Do you know how to make it safe? Something which make workers wait if there would be buffer overflow problem?
Milano
1

голосов
2

ответ
93

Просмотры

Как получить все не пустые выбирает и текстовые входы в JQuery?

Как получить все не пустые выбирает и текстовые входы в JQuery? Мне нужно найти все не пустые выбирает и текстовые входы и .Show () их родителей. Я думаю, что не нужно использовать цикл для этого, селектор должен быть достаточно. Я пробовал: $ ( 'документ') готов (функция () {$ ( 'вход [значение = ""]') родительский ( 'класс') шоу ();..});. Но это ничего не делать
Milano
1

голосов
1

ответ
34

Просмотры

Attrs аргумент не работает в URLColumn (Django-tables2)

Я пытаюсь создать столбец, который указывает на соответствующий пользователь. Я решил попробовать URLColumn. Атрибут Text работает правильно, но когда я пытаюсь добавить HREF URL, это делает текст. Вы знаете, где проблема? Класс PossiblePairsTable (tables.Table): customer_one = tables.URLColumn (ATTRS = { 'HREF': 'somehref'}, текст = лямбда-х: x.reservation_one.customer.userprofile.display_name,)
Milano
1

голосов
1

ответ
43

Просмотры

Как динамически выключить и включить отправку сообщений электронной почты?

У меня есть модель резервирования, который отправляет по электронной почте пользователю, когда он создан. Для целей тестирования, я хочу, чтобы заполнить базу данных с сотнями оговорок времени от времени. Он может производить тысячи писем, так что я хотел бы, чтобы отключить отправку сообщений электронной почты, или динамически изменить адрес электронной бэкенд, если это возможно. Я не могу сделать насыпной создавать, потому что мне нужно выполнить метод сохранения для каждой модели резервирования. Единственное, что приходит на ум, чтобы временно изменить settings.py, но, может быть, есть лучший способ сделать это (я может забыл изменить настройки). Защиту create_random_reservations (кол-во = 10, пользователей = 'futilestudio'): пользователи = User.objects.all () аэропорты = Location.objects.filter (is_airport = True) города = Location.objects.filter (is_airport = False) для п в диапазон (кол / 2): дт = DateTime (год = 2017, месяц = ​​9, день = случайным образом.
Milano
1

голосов
1

ответ
86

Просмотры

Django: Submitting same form multiple times causes 403 CSRF exception

У меня есть форма, которая создает поездку. Эта форма была отправлена ​​через AJAX, маршрутный создал, а затем, форма входа очищается так что пользователь может создать еще один элемент без обновления страницы. Проблема заключается в том, что после первого представить, Джанго возвращает: проверка CSRF не удалось. Запрос прерван. Я знаю, что проблема заключается в том, что CSRF токен был chaned, но это не было отражено в куки пользователей, поскольку страница не обновляется. Единственный способ, который приходит на ум, чтобы использовать csrfexempt. Посмотреть класс TripCreationView (LoginRequiredMixin, SuccessMessageMixin, CreateView): form_class = TripCreationForm template_name = 'поездки / add_new_trip.html' success_message = _ ( 'Новая поездка была добавлена') context_object_name = 'trip_creation_form' Защита должностей (самостоятельно, запрос, * арг, ** kwargs): возвращение супер (TripCreationView, самость). ) Или назад ( «внешний интерфейс: главная страница») Но я не знаю, как сделать эту работу. Есть ли у вас какие-либо идеи?
Milano
0

голосов
0

ответ
3

Просмотры

Джанго Rest Framework - определить необходимые поля

Я использую DRF для сериализации объектов экспортировать их через API, я не использую его для создания объектов. Ищешь простой способ сделать поле требуется при сериализации модели. API нужны некоторые поля быть не нулевым, поэтому я хочу, чтобы поднять APIMissingDataException, если какой-либо из них не является нулевым / Нет. Я пробовал: класс Meta: модель = поля User = [ 'import_id', 'удален', 'FULL_NAME', 'phone_work', 'email_work'] required_fields = поля Защиту проверки (я, ATTRS). Супер () проверки (AttrS ), если не все ([attrs.get (имя_поля) для имя_поля в self.Meta.required_fields]): поднять APIMissingDataException () Но проверить функцию не вызывается по какой-то причине. Я не хочу, чтобы явно определить все поля просто добавить необходимые = False им параметры. Есть ли более удобный способ?
Milano
1

голосов
1

ответ
35

Просмотры

Джанго CONCAT функция F с характером

У меня есть модель, которая GROUP_ID CharField. Это поле должно быть равно рк объекта с префиксом «#». Я пытаюсь обновить базу данных таким образом. MyModel.objects.update (group_id = е '# {F ( "рк")}') Но это не работает. На самом деле, он устанавливает «#F (рк)» строка для всех объектов. Могу ли я сделать эту операцию, используя функцию F?
Milano
1

голосов
2

ответ
0

Просмотры

Nginx показывает неправильное время / часовой пояс

Как исправить Nginx часовой пояс? Я настроил Nginx служить каталог, но DateTime создания в один час после моего реального времени. Я добавил к /etc/init.d/nginx экспорта TZ = то Суда служба Nginx перезарядка Судо служба Nginx рестарт «Европа / Братислава» Но это не помогло, там должна быть 14:19, вместо 13:19. EDIT Пробовал менять Ubuntu часового пояса по умолчанию, но DateTimes не изменяется. Суд Dpkg-перенастроить tzdata
Milano
1

голосов
2

ответ
0

Просмотры

Вывод crc32b в PHP не равна Python

I'm trying to convert PHP snippet into Python3 code but outputs of print and echo are different. You can see it in the step 1. Do you know where is the problem? I'm attaching input arrays too but I think they are equal. �W2+ vs ee7523b2 EDIT When I switch raw from TRUE to FALSE, outputs of 1st step are the same. $d = strrev(hash("crc32b", $d, FALSE)) . $d But the problem is that I have to convert PHP to Python, not the opposite because, then I'm usit in the step 2 which I need to have equal output. PHP OUTPUT (CMD) 0 -> 1 1 100 EUR 20190101 11111111 Faktúra 1 SK6807200002891987426353 0 0 1 -> �W2+ 1 1 100 EUR 20190101 11111111 Faktúra 1 SK6807200002891987426353 0 0 2 -> 00004e00007715c242b04d5014490af1445dd61c1527ddc5f4461ca5886caf63fd8fbcf7df69c2035760ecb28d8171efdb409c0206996498ea7921e715172e60c210f923f070079ffba40000 PYTHON OUTPUT ------- 0 -> 1 1 100 EUR 20190101 11111111 Faktúra 1 SK6807200002891987426353 0 0 1 -> ee7523b2 1 1 100 EUR 20190101 11111111 Faktúra 1 SK6807200002891987426353 0 0 2 -> b'00006227515c7830302762275c783030325c7865305c7864386a34585c7862346d5c7838665c7865625c7863315c786266625c7839625c786339675c786332785c7831645c7862392c415c7862625c7831645c78663770365c786463735c786236572d606c225c7865355c7865635c7831345c7863655c786331205c7830635c7831315c7861375c7839345c7864665c7865635c7830365c7831652c22265c7866355c7862335c7866345c78616145585c7861625c7866395c7839615c7839645c7865645c7864625c7830305c7864355c7861643b5c7865365f5c7866645c786533405c78303027' PHP
Milano
1

голосов
1

ответ
0

Просмотры

Django - model mixin doesn't work as expected

В модели PipedriveSync я использую GenericForeignKey поэтому любая модель может иметь объект PipedriveSync связаны. Класс PipedriveSync (TimeStampedModel): ... content_type = models.ForeignKey (ТипСодержимого, on_delete = models.CASCADE) object_id = models.PositiveIntegerField () content_object = GenericForeignKey ( 'content_type', 'object_id') И я использую GenericRelation, чтобы иметь возможность ссылки на этот объект в обратном направлении. Например, user.pipedrivesyncs.all () Посмотрите на класс пользователя (User AbstractUser): pipedrivesyncs = GenericRelation ( «pipedrive.PipedriveSync») Так как я должен указать те же pipedrivesyncs для многих моделей, я решил создать подмешать для этого (есть несколько методов, там тоже, но это сейчас не важно). Класс PipedriveSyncRelatedMixin (): pipedrivesyncs = GenericRelation ( 'pipedrive. PipedriveSync ') И я использую его таким образом класс пользователя (PipedriveSyncRelatedMixin, AbstractUser): перейти Проблема заключается в том, что эта Mixin не работает так, как она работает, когда я указываю pipedrivesyncs вручную. Случай с указанием pipedrivesyncs вручную:> и = User.objects.first ()> u.pipedrivesyncs.first ()> Case при использовании подмешать> и = User.objects.first ()> u.pipedrivesyncs.first ()> AttributeError: объект «GenericRelation» не имеет атрибута «первый» Где разница и я могу использовать подмешать для этой цели?
Milano
1

голосов
2

ответ
3.1k

Просмотры

Как отключить экран с помощью Xset?

Привет я пытаюсь запустить этот скрипт, который отключает экран, когда я называю сценарий. Код сценария: # / бен / ш STATUS = `Xset -q |! Grep «Монитор» | AWK «{печати $ 3}» `, если [«$ {STATUS}»=«On»], то Xset DPMS силой от другого Xset DPMS силы на фантастическом выходе 0 Но когда я называю сценарий, я получаю эту ошибку X Ошибка отказавших запрос: BadMatch (атрибуты недействительны параметры) Основной опкод неудачного запроса: 142 (DPMS) Незначительное опкод неудачного запроса: 6 (DPMSForceLevel) серийный номер неудачного запроса: 10 Текущие серийный номер в выходном потоке: 12
milano
1

голосов
1

ответ
1.4k

Просмотры

Правильное использование ММАП - Python

Я пытаюсь использовать ММАП для загрузки словаря из файла. Я объясню мою проблему на упрощенном примере. В реальных, у меня есть 10 файлов, которые должны быть загружены в миллисекундах (или действовать, как был загружен). Так что давайте есть словарь - 50 мб. Моя программа должна найти значение по ключу менее 1 сек. Поиск в этом словаре не проблема, это может быть сделано намного менее 1 сек. Проблема заключается в том, что, когда С.Б. помещает вход в текстовом поле и нажмите клавишу ввода, программа начинает загружать словарь в память, так что программа может найти ключ. Это может загрузка занимает несколько секунд, но я должен получить результат менее 1 сек (словарь не может быть загружен, прежде чем нажать Enter). Поэтому я рекомендовал использовать модуль MMAP, который должен быть намного быстрее. Я не могу Google хорошего примера. Я попытался это (я знаю, что это неправильное использование) Защиты loadDict (): с открытым (»
Milano
1

голосов
2

ответ
181

Просмотры

cPickle saved object loaded modified - Python

В моем сценарии, я пытаюсь сохранить словарь, используя cPickle. Все работает отлично, за исключением вещей, которые загружен словарем модифицированных каждую клавишу. Мой словарь выглядит следующим образом: { «а»: [45,155856,26,98536], «б»: [88,68,9454,78,4125,52] ...} При печати ключей из этого словаря перед сохранением он, она печатает правильные значения: «а», «б» ... Но когда я сохранить его, а затем загрузить с помощью cPickle, каждый ключ содержит «\ г» после правильного полукокса: «а \ г», «б \ г» ... Вот код для сохранения: Защиты saveSuffixArrayDictA (): для я в self.creation.dictA.keys (): печать LEN (я) печать «СТОП» с открытыми ( «изречениями», «ш +»), как е : pickle.dump (self.creation.dictA, е), который печатает: 1,1,1,1,1,1 .... STOP (с новой строкой, конечно) Потом, когда я пытаюсь загрузить его с помощью этого : @staticmethod Защиты изречения (): с открытым ( 'ddictA', 'гь'), а е: Dict = pickle.load (ф) для I в dict.keys (): печать LEN (I) печать 'СТОП' возвращение Dict It возвращает: 2,2,2,2,2,2,2,2 ... СТОП (с новой строкой, конечно) Как вы можете видеть, что это должно быть то же самое, но это не ... где может быть проблема, пожалуйста, ? EDIT: Я пытался напечатать значения и понял, что каждый элемент в списке (список значение) добавил «L» в конце этого пункта, который является числом.
Milano
1

голосов
2

ответ
90

Просмотры

Возвращает список совпадений по данной фразе

Я пытаюсь сделать метод, который может проверить, соответствует ли данная фраза, по крайней мере один элемент из списка фраз и возвращает их. Ввод является фраза, список фраз и словарь синонимов списков. Дело в том, чтобы сделать его универсальным. Вот пример: фраза = dictSyns «Это небольшой дом» = { «немного»: [ «маленький», «крошечный», «немного»], «дом»: [ «коттедж», «дом»]} listPhrases = [ «Это маленький дом», «Это небольшой коттедж», «Это небольшое здание», «Мне нужен совет»] я могу создать код, который может сделать это на данном примере, который возвращает логическое значение: если ( 'Это' +» '+' является '+' '+' а '+ х +' '+ у == выражения для й в dictSyns [' немного '] для у в dictSyns [' дома ']): печать' Матч»Первая точка в том, что я должен создать функцию, которая будет универсальной (зависит от результатов). Во-вторых, я хочу эту функцию списка.Возвраты совпавших фраз. Можете ли вы дать мне совет, как сделать это так, метод возвращает [ «Это маленький дом», «Это небольшой коттедж»] в этом случае? Вывод будет примерно так: >>> getMatches (фраза, dictSyns, listPhrases) [ «Это маленький дом», «Это небольшой коттедж»]
Milano
1

голосов
1

ответ
434

Просмотры

Найти один вхождение подстроки с использованием массива суффиксов

Я пытаюсь выяснить, как двоичный поиск в массиве суффиксов для одного совпадения рисунка. Давайте текст: petertomasjohnerrnoerror. Я пытаюсь найти эр. SA является суффиксом массив этого текста: 8,14,19,3,1,12,10,7,13,17,18,11,6,22,0,23,16,21,15,20,4 , 9,2,5 Теперь я хочу, чтобы найти какой-либо индекс массива суффиксов, что значение, указывая на один «эр». Таким образом, результат будет индекс в SA указывающей на 3,14 или 19, так что бы вернуть 1,2 или 3 я пытаюсь использовать бинарный поиск, но я не могу понять, каким образом. Защиту findOneOccurence (текст, SA, р): высокий = LEN (текст) -1 # Последний низкий индекс = 0 # самый низкий показатель, а True: проверить = (высокий-низкий) / 2 # найти середину, если р в текст [ SA [проверить]: SA [регистрация] + Len (р)]: возвращение проверка еще: если текст [SA [проверить]: SA [CHECK] + Len (р)]
Milano
1

голосов
1

ответ
1.1k

Просмотры

Ошибка: декоратор занимает ровно 2 аргумента (1 дано)

Я пытаюсь сделать немного декоратора, который обновляет графический интерфейс после изменения в базе данных. Проблема заключается в том, что я все еще получаю ошибку. Он работает, когда функция и декоратор не является частью какого-либо класса. Класс Tasks_Handling_Class: Защита database_changed (я, функ): функ () self.refresh_tasks_attribute () @database_changed Защиты add_task (сам, название, убывание, TIME_MINUTES): попробуйте: self.msq.insert_into_table ( 'задача', название, по убыванию, TIME_MINUTES ) self.refresh_tasks_attribute () Возвращает True, кроме исключений, как е: печать е возвращаем False TypeError: database_changed () принимает ровно 2 аргумента (1 дано) Единственное, что я хочу сделать, это запустить self.refresh_tasks_attribute () метод после add_task () метод. Не могли бы вы дать какие-то советы?
Milano
1

голосов
1

ответ
953

Просмотры

PyQt - определить, какой элемент был изменен

Можно ли определить, какой конкретный элемент (строка будет достаточно) был изменен? Дело в том, что я должен изменить базу данных после того, как элемент был изменен в QtTableWidget. Мое решение: Я заправить всю таблицу базы данных каждый раз, когда я обнаруживаю сигнал itemChanged. Таким образом, очень unefficient, если таблица имеет много строк. Я хочу, чтобы обнаружить ряд, который был изменен и обновления только эта строка в базе данных.
Milano
1

голосов
1

ответ
325

Просмотры

Regex TypeError: объект «» NoneType не отозван

Я пытаюсь извлечь некоторые данные из веб-страницы. Я использую Beautiful Soup 4 и регулярные выражения. Проблема заключается в том, что она возвращает ошибку, но я не могу понять, почему возникает ошибка. Вот часть моего кода: URLS = soup.findAll ( 'а', HREF = re.compile (г '/ Katalog / stavebnictvi /' +) '') Здесь ошибка: Traceback (самый последний вызов последнего) : Файл "C: \ Users \ Milano \ Мои документы \ LiClipse Workspace \ Web_Crawlers \ idatabaze_cz.py", строка 14, в get_categories_urls () Файл «C: \ Users \ Milano \ Мои документы \ LiClipse Workspace \ Web_Crawlers \ idatabaze_cz.py », строка 10, в get_categories_urls = soup.findAll URL-адресов ( 'A', HREF = re.compile (г '/ Katalog / stavebnictvi /' +) '') Ошибка типа: объект '' NoneType не вызываемым Существует по крайней мере, один тег выполнения условия. Например: Я думаю, что есть проблема с моим регулярным выражением. Я хочу, чтобы искать для каждого тега, где HREF в таком виде: / Katalog / stavebnictvi / (любой текст) Любые советы?
Milano
1

голосов
1

ответ
29

Просмотры

Быстрее способ избежать ловить исключение

Есть ли способ временной остановки ловить некоторые исключения? Дело в том, что, когда у вас есть несколько исключений, которые в настоящее время пойманных в коде, и вы хотите прокомментировать, потому что вы хотите, чтобы увидеть все вещи, напечатанных когда возбуждаются исключение (исключение печати не достаточно), вы должны комментировать попробовать, кроме , код в за исключением, наконец, код в конце концов и изменить отступ кода, где исключение может быть поднят. Это комментирование очень много времени, когда вы должны сделать это много раз. #try: pel.check_one_destination () #except Исключение, как е: # pel.driver.save_screenshot ( '') log.png #print е
Milano
1

голосов
1

ответ
392

Просмотры

PhantomJS действует иначе, чем Firefox WebDriver

Я работаю на некоторый код, в котором я использую веб-драйвер Selenium - Firefox. Большинство вещей, кажется, работает, но когда я пытаюсь изменить браузер на PhantomJS, он начинает вести себя по-разному. Я обработки страницы необходимо прокручивать медленно, чтобы загрузить все больше и больше результатов, и это, вероятно, проблема. Вот код, который работает с Firefox WebDriver, но не работает с PhantomJS: Защита get_url (назначения, дата_начал end_date): #The даты как% Y-% m-% d возвращение «https: //www.pelikan .sk / ск / рейса / listdfc =% s & DTC = С% s & гк = С% s & РТК =% s & дд =% s & й =% s & ПВ = 1000 & нс = 0 & PRC = & RNG = 0 & RBD = 0 & кт = 0 & вид = список»% ( 'CVIE% 20BUD% 20BTS», пункт назначения, пункт назначения, 'CVIE% 20BUD% 20BTS', дата_начала end_date) защиту load_whole_page (самообеспечение, назначения, start_date, end_date):
Milano
1

голосов
1

ответ
775

Просмотры

Селен - разбор страницы занимает слишком много времени

Я работаю с селеном в Python 2.7. Я понимаю, что загрузку страницы и подобную вещь занимает гораздо больше времени, чем сырье запросов, так как он имитирует все, включая JS и т.д., что я не понимаю, что синтаксический разбор уже загруженной страницы занимает слишком много времени. Everytime когда страница загружена, я нахожу все тег удовлетворяющего некоторое условие (около 30 DIV тегов), а затем я ставлю каждый тег в качестве атрибута для разбора функции. Для синтаксического анализа я использую css_selectors и другие подобные методы, как:. On.find_element_by_css_selector ( «div.carrier р») текст Насколько я понимаю, когда тха страница загружена, исходный код этой страницы сохраняются в моей памяти или в любом месте остальное так разборе должно быть сделано в миллисекундах. EDIT: я держал пари, что анализ и тот же исходный код, используя BeautifulSoup будет более чем в 10 раз быстрее, но я не понимаю, почему. Есть ли у вас какое-либо объяснение? Спасибо
Milano
1

голосов
1

ответ
218

Просмотры

Переключение между рабочими листами

Я пытаюсь создать XLSX файл CSV. Каждая строка в этом формате CSV содержит атрибут «ATR». Многие линии могут иметь один и тот же атрибут «ATR», например, «х», «у» и т.д. Так что я хочу сделать, это пойти через в строках CSV-файла один на один и записать их в этом XLSX файл. Если нет рабочего листа с именем в качестве значения атрибута «ATR», создать и записать эту строку там. Это уже есть этот лист, написать строку в эту таблицу. Защиту temp_file_to_xlsx (): термометру = xlsxwriter.Workbook ( 'export.xlsx') с открытой ( 'экспорта / export.csv') в качестве F: г = -1 для строки в F: г + 1 = данные splitted_row = строка = {} .split ( '::') для столбца в splitted_row: splitted_column = column.split ( ':..'
Milano
1

голосов
1

ответ
202

Просмотры

How to get request params in Django admin custom column?

Мне нужно, чтобы хранить информацию о фильтрации и поиска в странице администратора изменения Django. Поэтому, когда пользователь фильтры по «? Away_team__id__exact = 267821», мне нужно добавить этот запрос, чтобы изменить URL страницы. Скажем, мы отфильтровали объекты по запросу выше. Это URL списка изменений: http://127.0.0.1:8000/matches/match/?away_team__id__exact=267821 Я хочу сделать столбец изменения, которые перенаправляют пользователя изменить страницу текущего объекта и присоединяет запрос к URL, так вместо : http://127.0.0.1:8000/matches/match/2009/change/ URL-адрес будет: http://127.0.0.1:8000/matches/match/2009/change/?away_team__id__exact=267821 проблема заключается в том, что Я не мог получить доступ запроса в методе пользовательского столбца. Я пытался сделать это с помощью языка шаблонов, но без успеха, я получаю: http://127.0.0.1:8000/matches/match/1996/change/?{{%20request.GET. UrlEncode% 20}} Это метод: Защита изменить (я, объект): возвращение mark_safe (е «» «Zmeniť») Вы знаете, как сделать это? EDIT Это происходит потому, что мне нужно создать кнопки Далее и Назад на странице объекта изменения так что пользователь может выйти непосредственно к следующему объекту.
Milano
1

голосов
2

ответ
28

Просмотры

Джанго абстрактную модель наследования - сделать все поля NULLABLE

У меня есть AbstractModel, модель и DraftModel. Мне нужно DraftModel наследовать от AbstractModel, но все наследуемые поля должны быть нулевыми = True. Я не могу изменить поля Модели обнулить = True, так как существует слишком много логики построена на этом. Я предпочитаю не перекрывая вручную все поля. Я пробовал: DEF __init __ (самостоятельно, * арг ** kwargs): супер () .__ инициализации __ (* арг ** kwargs) для поля в self._meta.fields: field.null = True Который не работает, не так есть какие-либо идеи? EDIT Я понял одно решение (проверить мой ответ), но вы открыты, чтобы добавить ваши.
Milano
1

голосов
2

ответ
3k

Просмотры

How to render tables in django-datatable-view?

Я не могу понять, как сделать редактируемую таблицу с использованием Django-DataTable ракурса. Я хочу, чтобы создать таблицу точно так: http://django-datatable-view.appspot.com/x-editable-columns/ от модели города, например. Я читать документы и учебники, но до сих пор не могу понять, как создать таблицу. Это то, что я сделал до сих пор: {% распространяется "base.html" %} {% блок головок%} {% статическая нагрузка%} е datatableview.auto_initialize = ложь; $ (функция () {вар xeditable_options = {}; datatableview.initialize ($ ( 'DataTable.'), {fnRowCallback: datatableview.make_xeditable (xeditable_options),});}) {% концевой блок%} {% Содержание блока%} {{DataTable}} {{object_list}} {%}% концевым блоком И на мой взгляд:
Milano
1

голосов
1

ответ
750

Просмотры

Improperly Configured Form - Django

Recently, I've figure out how to create a registration in Django. The problem is that there are just three fields - username,password and it's confirmation. In my project, there will be at least two types of users with different attributes. Customers and Freelancers. So I've tried to make new model as I've found here on StackOverflow, but it returns Exception: Exception Type: ImproperlyConfigured Exception Value: Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is prohibited; form UserCreateForm needs updating. MODELS.PY: class UserCustomerProfile(models.Model): user = models.OneToOneField(User) email = models.EmailField() age = models.IntegerField() def __str__(self): return "%s's profile" % self.user FORMS.PY class UserCreateForm(UserCreationForm): email = forms.EmailField(required=True) class Meta: model = User def save(self, commit=True): if not commit: raise NotImplementedError("Can't create User and UserProfile without database save") user = super(UserCreateForm, self).save(commit=True) user_profile = UserCustomerProfile(user=user, email=self.cleaned_data['email']) user_profile.save() return user, user_profile VIEWS.PY: def register(request): if request.method == 'POST': form = UserCustomerProfile(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('register/complete/') else: form = UserCreateForm() token = {} token.update(csrf(request)) token['form'] = form return render_to_response('register/registration_form.html', token) Do you know how to fix this?
Milano
1

голосов
1

ответ
26

Просмотры

Проверьте, содержит ли число ровно х одинаковых чисел в строке

Я ищу способ, чтобы проверить, является ли строка содержит точную х равное число в строке (не более). Так, например, для 3-х чисел: 788895 бы быть правдой, но для 7888895 было бы значение False. У меня есть список номеров, и я собираюсь использовать фильтр в этом списке. В случае, если я хотел, чтобы фильтровать те числа, которые содержит число, по меньшей мере, 3 в ряд, было бы: Num = фильтр (лямбда-х: любой (у по х при у в [ «000», «111», «222» ..etc]), цифра) но как изменить этот фильтр, чтобы вернуть 44000125, но не 44000012, потому что есть 4 нуля подряд? не EDIT: Я могу сделать грубую силу подхода, чтобы проверить каждый номер, если нет какого-либо [ «0000», «1111» ...], но я думаю, что должно быть лучше.
Milano
1

голосов
1

ответ
257

Просмотры

Как обрабатывать класс ** kwargs в Python?

Как я мог установить атрибуты объектов с помощью «один» класс аргументов ** kwargs? Дело в том, что я хочу, чтобы сделать этот код в одном цикле: класс покупка (): Защита __init __ (самоповреждения, ** kwargs): self.set_attributes (kwargs) Защита set_attributes (самоповреждения, kwargs): если 'файл' в kwargs.keys (): self.file = kwargs [ 'файл'], если 'текст' в kwargs.keys (): self.text = kwargs [ 'текст'], если 'язык' в kwargs.keys (): self.language = kwargs [ 'языка'] Это должно быть что-то вроде: покупки класса (): Защита __init __ (я, ** kwargs): self.set_attributes (kwargs) Защиты set_attributes (я, kwargs): при г, к в kwargs.iteritems () : self.k = v, которая, конечно, не работает.
Milano
1

голосов
2

ответ
2.1k

Просмотры

ConfigParser - печать config.sections () возвращает []

Я пытаюсь использовать модуль ConfigParser для разбора файла * .ini. Проблема заключается в том, что, когда я пытаюсь напечатать секции или любой другой, он возвращает пустой список []. config.ini [Сервер] хост = локальный порт = 9999 MAX_CLIENTS = 5 [REGULAR_EXPRESSIONS] regular_expressions_file_path = Команды / commands_dict config.py # - * - кодирование: UTF-8 - * - импорт ConfigParser конфигурации = ConfigParser.SafeConfigParser () config.read ( "config.ini") печать config.sections () [] вы знаете, где проблема? EDIT: Вот экран моей структуры:
Milano

Просмотр дополнительных вопросов