Python Daily
2.57K subscribers
1.48K photos
53 videos
2 files
38.9K links
Daily Python News
Question, Tips and Tricks, Best Practices on Python Programming Language
Find more reddit channels over at @r_channels
Download Telegram
The time before a page is loaded in the browser is very slow on list views with around 400 objects, what can I do to improve that and there what tools do you suggest to profile where the bottlenecks lie?

I can paginate generic list views, and that does improve the time for the page to be served.

But I have some other list views which use FilterSet from django-filter, and those can't be paginated(well, out of the box, at least)
They can take around 16 secs to fully send the page to the browser, and that's just for around 400 objects. I know the problem is not database related, because according to django-debug-toolbar the SQL quiries finish around 150 ms.

Are these serving times normal?

/r/djangolearning
https://redd.it/8hjgp4
[AF] Getting error 404 when using search bar?

Hi, so I want to make a search-bar which searches the database for posts with the same name as the query.

Here is the current code I have in my routes.py file:

@app.route('/search_result/<search_str>', methods=['GET'])
def search_result(search_str):
post_query = Post.query.filter_by(title=search_str).all()
topic_query = Topic.query.filter_by(tag_name=search_str).all()

return render_template('search_result.html', post_query=post_query, topic_query=topic_query)

@app.route('/search', methods=['GET', 'POST'])
def search():
form = SearchForm()
if request.method == 'POST' and form.validate_on_submit():
search_str = form.search_str.data
return redirect(url_for('search_result', search_str=str(search_str)))

return redirect(url_for('search_result', search_str=form.search_str.data))

And here is the code for the base.html file:

<div class="searchbar">

<form action="{{ url_for('search') }}" method=post>
<input type="text" name="search" placeholder="Search...">
</form>

</div>

So my problem is this. Whenever I make a search using the input, for some reason it is never saved and an error 404 is made. What should happen is that the search() function would take the inputs from the form and redirect to the search_result route.

What exactly is going on?

Here is my github repo for it if you need more context:

https://www.github.com/ModoUnreal/dopenet

/r/flask
https://redd.it/8gruit
How to Create and Manage Menus of Wagtail CMS

I wrote a blog post talking about how to create and manage menus in Wagtail CMS. It would help you understand how the menu in Wagtail works, and it would also introduce you wagtailmenus, a powerful menu plugin for Wagtail.

[How to Create and Manage Menus of Wagtail CMS](https://blog.michaelyin.info/2018/05/06/wagtail-tutorial-12-how-create-and-manage-menus-wagtail-application/)

BTW, if you have question about Wagtail, feel free to ask.


/r/django
https://redd.it/8hmamp
Glowscript in JupyterLab

I believe I read that currently there are no plans to have JavaScript implemented in JupyterLab. This would mean that Glowscript would no longer be supported. Am I reading this wrong, or are glowscript’s days numbered with Jupiter? Or perhaps Jupyter notebooks will be around for the foreseeable future? I think many physics educators would be interested in knowing if glowscript will still be supported.

/r/IPython
https://redd.it/8hgavu
Pyception - Nerdy parody for Inception ( Love the creativity )
https://www.youtube.com/watch?v=UXd0EDy7aTY

/r/Python
https://redd.it/8hodmx
[AF] It's 2018 - how do you document your REST APIs in Flask?

Hey everyone, I'm currently using Flask as a RESTful API endpoint using Flask-RESTful. At the moment I'm just writing the API without any sort of documentation at all. I have no idea where to turn to learn about building documentation for my APIs, or if Flask-RESTful is still even the consensus king for setting up REST endpoints in Flask. Most documentation I can find on this subject is years old.

So my question: it's 2018 - what is everyone using for RESTful API endpoints + documentation in Flask?

/r/flask
https://redd.it/8hqj5r
Running a python script together with django - best practice question

Hi, this is very tangential to regular python programming, but maybe you guys have encountered the same problem!

I'm building a web-app that needs support from a script, or other application running on the server. The function of the script is to match entries from an order model.

Short-code: matcher.py

from app.models import item1model, item2model, madematchmodel
import time

While True:
item1=item1model.objects.get(identifier='id')
item2=item2model.objects.get(identifier='id')
if match:
match=madematchmodel(item1=item1, item2=item2)
match.save()
else:
pass
time.sleep(5)

As you might notice I'm a novice at both django and programming in general, am I breaking any major rules by having a constantly running While True:-script here?

What is a better way to accomplish this?

/r/django
https://redd.it/8hr5jz
Where is Django's under the hood stuff located?

Watching the command line drift by I notice references to files that aren't in y project files, and when I get errors also. I am wondering where these files are? I' just curious as to how things work under the hood.

/r/djangolearning
https://redd.it/8hppvf
Mobile App Creation

I'm wondering, would the following be a viable strategy for a mobile application? use Python Kivy cross\-platform for front\-end; some sort of Distributed D.B like NoSQL with Python queries for Backend; and REST or SOCKET or some sort of messaging\-bus for Front\-end to back\-end interactions?

/r/Python
https://redd.it/8hsn8k
[AF]ForeignKey is always OFF and not working between tables in SQLalchemy in Flask

My code for db in Flask and SQLalchemy is working but when I make comment in post, ForeignKey doesn't link comment with that post and there is no value for post_id in table "comment" when comment is created.

Do you please know, what could be wrong? Tryed using Pragma to force foreignkey, but it didnt help. Tried to enforce ForeignKey ON with sqlite> PRAGMA foreign_keys = ON; but it does not persist.

Thank you

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///userdata.db'
db = SQLAlchemy(app)

engine = create_engine('sqlite:///userdata.db')

def _fk_pragma_on_connect(dbapi_con, con_record):
dbapi_con.execute('pragma foreign_keys=ON')

from sqlalchemy import event
event.listen(engine, 'connect', _fk_pragma_on_connect)

class Post(db.Model):

__tablename__ = 'post'

id = db.Column(Integer, primary_key=True)
title = db.Column(String(50))
subtitle = db.Column(String(50))
author = db.Column(String(20))
date_posted = db.Column(DateTime)
content = db.Column(Text)
post_rel = relationship('Comment',
back_populates='comment_rel',
foreign_keys='[Comment.post_id]')

def get_comments(self):
return Comments.query.filter_by(
post_id=post.id).order_by(Comments.timestamp.desc())

def __repr__(self):
return '<Post %r>' % (self.body)

class Comment(db.Model):

__tablename__ = 'comment'

id = db.Column(db.Integer, primary_key=True)
text = db.Column(db.String(140))
author = db.Column(db.String(32))
timestamp = db.Column(db.DateTime(), default=datetime.utcnow, index=True)
post_id = db.Column(db.Integer, db.ForeignKey('post.id'), nullable=False)
comment_rel = relationship('Post', uselist=False, back_populates='post_rel')

def __init__(self, text, author, timestamp):
""""""
self.text = text
self.author = author
self.timestamp = timestamp

def __repr__(self):
return '<Post %r>' % (self.body)

def show(self):
return self.author + '\n' + self.text

@app.route('/addcomment', methods=['POST'])
def addcomment():
commentar = request.form['commentar']
comment_done = Comment(text=commentar, author=current_user.username,
timestamp=datetime.now())
db.session.add(comment_done, 'PRAGMA foreign_keys=on')
db.session.commit()

return render_template('post.html', post=post)



/r/flask
https://redd.it/8hn1vs
Helping LibreOffice in Python

People post here periodically looking for projects to work on to better their skills. I can recommend helping out LibreOffice: https://wiki.documentfoundation.org/Macros/Python_Design_Guide

Most of the work in LibreOffice is in C++. It ships with a Python interpreter, and has some scripts for QA, and Wizards, and a simple grammar checker, but there's not much going on currently: https://cgit.freedesktop.org/libreoffice/core/log/?qt=grep&q=python

If people who want to improve their Python skills also want to help a production codebase, it's a good place to go. LibreOffice is important to the free desktop, and the work could get used by many people.

They also have a few Easy Hacks as a way to start: https://wiki.documentfoundation.org/Development/EasyHacks/by_Required_Skill/Skill_Python

I did some C++ patches to make it look good on HiDPI screens. I'd post a link but the development process is so different between Python and C++ that it wouldn't be useful ;-)

LibreOffice is missing even basic plugins to Wikipedia and WikiCommons and the CC Flickr, smart grammar checkers, etc. There are many ways to make LibreOffice better via little Python plugins. Here's the grammar checker which gives a sample: https://cgit.freedesktop.org/libreoffice/lightproof/tree/

/r/Python
https://redd.it/8htykb
Radioselect widget for forms.BooleanField creates a 3th, empty value option besides of True/False. how do I remove that option?

I've followed https://stackoverflow.com/a/3961084 to set a booleanfield to display 2 radio buttons with custom text for the True/False values, but it creates a 3th option , labeled "-----".
this button has a blank value. Looking at the POST values, selecting it does set`'add'(the booleanfield) to ['']`and gives a `ValidationError at (an url) ["'' value must be either True or False."]` How do I remove it?

Never mind, found it at the django docs.

If the model field has choices set, then the form field’s widget will be set to Select, with choices coming from the
model field’s choices. The choices will normally include the blank choice which is selected by default. If the field is
required, this forces the user to make a selection. The blank choice will not be included if the model field has
blank=False and an explicit default value (the default value will be initially selected instead).


/r/djangolearning
https://redd.it/8hudfw