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
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
What's everyone working on this week?

Tell /r/python what you're working on this week! You can be bragging, grousing, sharing your passion, or explaining your pain. Talk about your current project or your pet project; whatever you want to share.


/r/Python
https://redd.it/8hwz4o
Backdoor in ssh-decorator package

Do not install or use the [ssh\-decorator](https://pypi.org/project/ssh-decorate/#files) package from Pip. It has a backdoor inserted to steal all your SSH credentials. I've already contacted the developer to take it out. He hasn't responded so for now, use at your own risk! [https://ibb.co/kdDk67](https://www.linkedin.com/redir/redirect?url=https%3A%2F%2Fibb%2Eco%2FkdDk67&urlhash=SFzn&_t=tracking_anet)

**UPDATE:** The compromised package has been taken down now.

https://i.redd.it/zu0guck3cmw01.png

/r/Python
https://redd.it/8hvzja
Django rest and React

So i just started with django rest and front end frameworks e.g react. From what I've seen with react is that we fetch data from a rest api. We only get data and we build all our logic as to what to do with that data in react.

So here's my question: I've built apps with django before. I've had to create views, forms signals etc etc. however will this be the same case when I want to make a single page application using the rest api? I mean in this case my django application will only serve the function of providing an api right? it will not have anything to do with views and forms logic? all of that will be done in react ?

Basically my question is this: If i want to make a single page application. Do I only need django to serve as a data storage which will provide an api and build all the logic and stuff in the front end e.g angular, react or vue etc?



/r/django
https://redd.it/8hv7ye
Multiple apps, same login.

I am currently running a flask app under `mysite.com`. Now I would like to add a second flask app that will run under a subdomain, say `new.mysite.com`.

What I would like to do is have the main app handle the user authentication so if you login in `mysite.com/login` you are good for `new.mysite.com` too. Right now I am using the flask-login plugin for the main site. Ideally I don't want to add any authentication code or deal with the user database in the second app, but my understanding is that I still need a login manager and a user loader.

What is the proper way to implement this?

/r/flask
https://redd.it/8ggd5r
Email authentication

I'm on a subject of creating/authenticating accounts. Now when a user signs up, I want them to use a valid email. (Gmail, Yahoo etc.) And not fake one time use emails. Whats the best way going about doing this? I've been looking at creating a list of valid email address endings

ie. Endswith @gmail.com, @yahoo.com.

If it matches those it would be valid. I'm not sure if there is a better way...Thoughts?

/r/djangolearning
https://redd.it/8hytlv
Flask CLI and Web ?

I'm thinking of building a Flask APP.

I would also like to build a corresponding CLI app.

Should I build two separate apps or can I make Flask do it all?

Thanks

/r/flask
https://redd.it/8gh6lv
A promising competitor for pygame: Arcade

I've been using pygame for a long time now (just check my GitHub), and while it gets the job done, it has its downsides. Some of the stuff is very confusing; I for one hate how the sprites can only be positioned on integer coordinates, forces me to write my own wrapper around the sprites every time. And the whole game loop is just a bunch of boiler plate, since you're gonna do it the same way everytime anyways. I even made a library to avoid having to write all the boiler plate: https://github.com/Mahi/EzPyGame.

However, there is a better solution! Let me introduce you to [Arcade](http://arcade.academy/). It's a similar game library, but has way less quirks and it's much more pythonic. It's also being actively maintained and developed further as you can see on the [GitHub](https://github.com/pvcraven/arcade) page. It uses OpenGL and pyglet underneath, and there are a ton of examples on getting started on its website. There's even a [subreddit](/r/pythonarcade), although a bit inactive.

Just wanted to give you all a heads up, I'm not connected to the developer in any way, I'm just very happy to see a "better" pygame and wanted to let you all know. It takes some time to get into (coming from pygame), but for me it has been worth the time.

/r/Python
https://redd.it/8hz8p8
pipenv: wanted to try out a specific version of python, ran into some bugs

tldr: used pipenv --python path/to/2.7.15, but pipenv shell still thinks i'm using 2.7.6

---

twig@nix:~/src/TestProject$ rm -rf Pipfile Pipfile.lock ~/.virtualenvs/TestProject-nEJHdvQJ
twig@nix:~/src/TestProject$ pipenv install --python ~/python/compiled/2.7.15/bin/python2.7
Creating a virtualenv for this project…
Using /home/twig/python/compiled/2.7.15/bin/python2.7 (2.7.15) to create virtualenv…
⠋Running virtualenv with interpreter /home/twig/python/compiled/2.7.15/bin/python2.7
New python executable in /home/twig/.virtualenvs/TestProject-nEJHdvQJ/bin/python2.7
Also creating executable in /home/twig/.virtualenvs/TestProject-nEJHdvQJ/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/twig/.virtualenvs/TestProject-nEJHdvQJ
Creating a Pipfile for this project…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (dfae9f)!
Installing dependencies from Pipfile.lock (dfae9f)…
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run the following:
$ pipenv shell


twig@nix:~/src/TestProject$ pipenv shell
Loading .env environment variables…
Spawning environment shell (/bin/bash). Use 'exit' to leave.
. /home/twig/.virtualenvs/TestProject-nEJHdvQJ/bin/activate


(TestProject-nEJHdvQJ) twig@nix:~/src/TestProject$ python --version
Python 2.7.6


(TestProject-nEJHdvQJ) twig@nix:~/src/TestProject$ whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python3.4m /usr/bin/python3.4 /usr/bin/python2.7-config /etc/python /etc/python2.7 /etc/python3.4 /usr/lib/python2.7 /usr/lib/python3.4 /usr/bin/X11/python /usr/bin/X11/python2.7 /usr/bin/X11/python3.4m /usr/bin/X11/python3.4 /usr/bin/X11/python2.7-config /usr/local/lib/python2.7 /usr/local/lib/python3.4 /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz

any ideas?

/r/Python
https://redd.it/8i1qdq
I have a 64 bit machine, but I had to install the 32 bit version of Python 3.6.5

I’m new to programming as a whole. I had installed Python 3.6.5 on my 64 bit computer, but I have the 32 bit version of Python. Can anyone explain this please?

/r/Python
https://redd.it/8i17ks