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
I made a web extension that lets you preview content of a links on hover for google. Currently works in chromium browsers. Using flask backend to bypass Cors

You can download it from https://github.com/ipriyam26/preview

The backend is also open sourced and can be found on my github

​

https://reddit.com/link/10daxxd/video/dq5z1nw4rdca1/player

Hosted on a cheap render server so please tolerate the delay

/r/Python
https://redd.it/10daxxd
Good practices for 'merging' information from two different models in order to manipulate them in a template

Hi guys. I'm new to Django, and i'am a little bit lost.

In my application, users can follow communities, and earn points by performing certain actions.

Quests are point goals to earn by performing some actions, users get a reward when they complete a quest. Quests are linked to communities, Epics are a set of Quests to complete. Quests are not necessary related to Epics.

I created these models:

class Quest(models.Model):
QUESTTYPESCHOICES = ('...')
community = models.ForeignKey(Community, ondelete=models.CASCADE)
type = models.CharField(max
length=20, choices=QUESTTYPESCHOICES)
name = models.CharField(maxlength=100, blank=False)
description = models.TextField(blank=False)
type = models.CharField(max
length=20, choices=QUESTTYPESCHOICES)
target = models.CharField(maxlength=255, null=True, blank=True)
point
goal = models.IntegerField()
startdate = models.DateField(null=True, blank=True)
end
date = models.DateField(null=True, blank=True)


class

/r/django
https://redd.it/10dtcfo
How do you manage typing between Django backend and a TypeScript frontend?

Hi Django community. Have you ever worked on an application that uses a Django backend and a TypeScript frontend, and if so, how did you manage your types?

Context: the project I work on basically defines the types twice, i.e. once for the backend and once for the frontend. Keeping the types consistent between the frontend and the backend (i.e. API responses) is a bit of a nuisance and can be error-prone.

/r/django
https://redd.it/10dbxyn
How to save files locally when AWS s3 is unavailable

Hi there! In our project we use s3 (via django-storages) as a default media storage, our application makes a lot of photos and sends it to the cloud. But in reality, our customers sometimes use our service with very unstable internet connection, so sometimes we cannot save images and just lose it.

I was thininking about overriding _save method of "S3Boto3Storage" adding condition checking if there is connection to AWS. And if no, save it using the new class instance of Django.core.files.storage.FileSystemStorage

And additionally I planned to schedule a celery job to try sending locally stored photos to S3 and delete it from the locale storage in case of success.

But seems like it is connecting to the AWS long time before _save method has been called, and that means that we need to override almost every method or to write own custom storage backend completely. Moreover, I am not really sure whether this will be a good practice. Does anyone have any suggestions or a piece of advice?

/r/django
https://redd.it/10dqxge
Tuesday Daily Thread: Advanced questions

Have some burning questions on advanced Python topics? Use this thread to ask more advanced questions related to Python.

If your question is a beginner question we hold a beginner Daily Thread tomorrow (Wednesday) where you can ask any question! We may remove questions here and ask you to resubmit tomorrow.

This thread may be fairly low volume in replies, if you don't receive a response we recommend looking at r/LearnPython or joining the Python Discord server at https://discord.gg/python where you stand a better chance of receiving a response.

/r/Python
https://redd.it/10dwvx5
SocketIO but multiple "background threads" - where to "spawn" them?

Hi all! First time using the SocketIO package, and have read a ton of tutorials, but they're all kinda "bare minimum", and usually only use a single background thread, and on top of it, it's a "global" (eww).

I basically have a bunch of client-side ajax requests that I'm wanting to convert over to a SocketIO-type configuration where each ajax request is a separate thread that runs queries and returns data back to the clients.

I don't really know how to set this type of thing up where multiple background threads are working. Like, where to put it in my code exactly. I'm also not sure how to "monitor" those threads to know when one dies (for whatever reason) and needs to be re-spawned again.

Does anyone have a working example of this? I'm trying to avoid globals as well if possible.

/r/flask
https://redd.it/10e0kct
Comprehensive Guide to Testing a Flask Application with Pytest

Hey there guys!
I'm searching for some comprehensive guide on how to test a flask app. I have some protected views implemented with flask-login and can't test them easily. Also there's other functionality that's beyond the easy beginner stuff but my skill's not there yet. Do you know of some good resources to dive deeper into testing with a flask app?

/r/flask
https://redd.it/10ddd42
Trying to build a dynamic Table using Flask/turbo/threading

Hey guys

Im currently trying to create a dynamicly updating table, housing some data and I'm slowly loosing it.

The problem is, no matter what I do, I can't seem to get it to consistently update.

The wierd thing is, sometimes it will randomly work,but it will start duplicating the "delete all" button with every update. And then after a quick reload of the side, without changing anything in the code, it won't update anymore.

I also sometimes get a "GET /turbo-stream HTTP/1.1" 500 -" error, and then without changing anything, just restarting frontend.py, it won't appear again.

The following code is what I have currently:

frontend.py:

import threading
import time

from flask import Flask, Response, render_template, url_for
from turbo_flask import Turbo

from Backend import Backend

app = Flask(__name__)
turbo = Turbo(app)
app.config['SERVER_NAME'] = '192.168.2.183:5000'

#This is what trap_data looks like (for a single entry):
#(141, '192.168.1.1', 'Authentication Failure', 'Invalid username or password', 3, 1,

/r/flask
https://redd.it/10dw2xv
Am I forced to put favicon.ico in the static directory?

I know that it is recommended to put it in the static directory and then add a link tag for it,

but I am just using flask as an easy way to handle the http stuff since I want to do stuff manually for now to ingrain how everything actually works, so rather than having a static directory I add an @app.route for each route/file request.

This seems to work fine for the css, html, and JavaScript files and everything else, but for some reason, despite my browser sending a get request for the favicon using the correct route, flask does not handle that route.

In the flask app I have:

@app.route(“/Images/favicon.ico”)
def getFavicon():
return send_file(“Images/favicon.ico”, mimetype=“image/x-icon”)

In the html head element I have:

<link href=“Images/favicon.ico” rel=“icon” type=“image/x-icon” />


Also on the JavaScript console I see a 404 for the request, but the request does not even show up in the flask app output on the terminal.

Does flask act weird because it’s an icon or something?

/r/flask
https://redd.it/10dwkbo
Each event should have be able to have mutliple, People and Organisations.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///project.db'
db = SQLAlchemy(app)


class Event(db.Model):
__tablename__ = 'Event'
#id = db.Column(db.Integer, primary_key=True)
person_id = db.Column(db.Integer, db.ForeignKey('Person.id'), primary_key=True)
organisation_id = db.Column(db.Integer, db.ForeignKey('Organisation.id'), primary_key=True)

people = db.relationship('Person', uselist=True, back_populates="events")
organisations = db.relationship('Organisation', uselist=True, back_populates="events")

title = db.Column(db.String(255))
body = db.Column(db.String(255))

class Person(db.Model):
__tablename__ = 'Person'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
password = db.Column(db.String(255))


/r/flask
https://redd.it/10dskrd
Read only object to share between sessions and requests

I have a look-up table which will be used in a read-only mode and should be created once when the flask server starts and maybe can be shared across the different requests to the server.

I am new to flask and web development and would you like to know the best way to achieve this in flask? The table is rather large (6 MBish) in size, so interested in minimizing memory overhead.

/r/flask
https://redd.it/10ddwm2
Mutable tuple views - einspect

Just finished adding all MutableSequence protocols for TupleViews. So pretty much all methods you can use on a list, you can now use on a tuple 👀

https://preview.redd.it/n14ywwpolkca1.png?width=1000&format=png&auto=webp&v=enabled&s=98373e593e60f58678265494f7ca9bc6739ea0b7

Feedback, issues, and PRs are welcome!

https://github.com/ionite34/einspect/

pip install einspect

A check also ensures resizes aren't outside of allocated memory. This means there is a limit to how much you can extend a tuple beyond its initial size.

from einspect import view

tup = (1, 2)
v = view(tup)

v: = 1, 2, 3, 4, 5
>> UnsafeError: setting slice required tuple to be resized beyond current memory allocation. Enter an unsafe context to allow this.

This is overrideable with an unsafe() context.

from einspect import view

tup = (1, 2)
v = view(tup)

with v.unsafe():
v: = 1, 2, 3, 4, 5

print(tup)
>> (1, 2, 3, 4, 5)
>>

/r/Python
https://redd.it/10e80md