ZMAG (ZeroMQ & GraphQL)
Hi everyone,
# Docs:
[https://hlop3z.github.io/zmag/](https://hlop3z.github.io/zmag/)
# GitHub:
[https://github.com/hlop3z/zmag/](https://github.com/hlop3z/zmag/)
# What My Project Does:
ZMAG is a framework designed for building **network APIs** rather than traditional web applications, leveraging the unique combination of **GraphQL** and **ZeroMQ**. With **ZeroMQ** you can create different system. Examples:
* **Request / Response**
* **Push / Pull**
* **Publish / Subscribe**
# Target Audience:
Currently is a toy project, I’m going to use it to manage projects internally, which I made with Django and FastAPI.
# Comparison:
As far as I know there’s nothing that combines **GraphQL** and **ZeroMQ** into a framework. Something similar I know that exist but not with GraphQL is [https://www.zerorpc.io/](https://www.zerorpc.io/)
/r/Python
https://redd.it/1fyu9v6
Pylon: A Web-Based GUI Library for Desktop Applications
# 💎 What is Pylon?
Pylon is a web-based GUI library designed for desktop applications, providing a Python-powered alternative to frameworks like Electron and Tauri. It simplifies desktop app development by integrating Python features with a modern web-based interface, making it ideal for AI-driven applications.
# 🎯 Target Audience
Pylon is designed for both beginners and experienced developers who want to build desktop applications using Python. It's particularly suited for those seeking an easy-to-use, Python-centric framework to develop robust desktop apps, especially those incorporating AI functionalities.
# 🔍 Comparison with Existing Alternatives
Unlike general-purpose frameworks such as Electron and Tauri, Pylon is tailored specifically for Python developers. It offers native support for Python's ecosystem and includes optimizations for building AI-powered desktop applications, making it a great choice for developers integrating machine learning models into their apps.
# Key Features 🚀
* **Web-Based GUI**: Build UIs for desktop apps using HTML, CSS, and JavaScript.
* **System Tray Support**: Integrate system tray icons with ease.
* **Multi-Window Management**: Create and manage multiple windows seamlessly.
* **Python-JavaScript Bridge API**: Effortlessly bridge Python and JavaScript functionality.
* **Single Instance Support**: Prevent multiple instances of the app from running.
* **Comprehensive Desktop Features**: Includes monitor management, desktop capture, notifications, shortcuts, and clipboard access.
* **Clean Code Structure**: Simplified
/r/Python
https://redd.it/1fysjpn
Python 3.13's best new features
Everyone has their own take on this topic and here is mine as both a video and an article.
I'm coming with the perspective of someone who works with newer Python programmers very often.
My favorite feature by far is the new Python REPL. In particular:
- Block-level editing, which is a huge relief for folks who live code or make heavy use of the REPL
- Smart pasting: pasting blocks of code just works now
- Smart copying: thanks to history mode (with F2
) copying code typed in the REPL is much easier
- Little niceities: exit
exits, Ctrl-L
clears the screen even on Windows, hitting tab inserts 4 spaces
The other 2 big improvements that many Python users will notice:
- Virtual environments are now git-ignored by default (they have their own self-ignoring .gitignore
file, which is brilliant)
- PDB got 2 fixes that make it much less frustrating: breakpoints start at the breakpoint and not after and running Python expressions works even when they start with help
, list
, next
, or another PDB command
These are just my takes on the widely impactful new features, after a couple months of playing with 3.13. I'd love to hear your take on what the best new features are.
/r/Python
https://redd.it/1fyeo1g
Flask Ecomm project
Hi all, I made this ecomm project using Flask! I could use some help listing some features I could add and some more general feedback. Also if someone wants to look/use the repo please DM me and I'll share the link once I upload it to GitHub just make sure to leave a star lol ;)
https://reddit.com/link/1fy34of/video/6l1piixvsatd1/player
/r/flask
https://redd.it/1fy34of
Tuesday Daily Thread: Advanced questions
# Weekly Wednesday Thread: Advanced Questions 🐍
Dive deep into Python with our Advanced Questions thread! This space is reserved for questions about more advanced Python topics, frameworks, and best practices.
## How it Works:
1. **Ask Away**: Post your advanced Python questions here.
2. **Expert Insights**: Get answers from experienced developers.
3. **Resource Pool**: Share or discover tutorials, articles, and tips.
## Guidelines:
* This thread is for **advanced questions only**. Beginner questions are welcome in our [Daily Beginner Thread](#daily-beginner-thread-link) every Thursday.
* Questions that are not advanced may be removed and redirected to the appropriate thread.
## Recommended Resources:
* If you don't receive a response, consider exploring r/LearnPython or join the [Python Discord Server](https://discord.gg/python) for quicker assistance.
## Example Questions:
1. **How can you implement a custom memory allocator in Python?**
2. **What are the best practices for optimizing Cython code for heavy numerical computations?**
3. **How do you set up a multi-threaded architecture using Python's Global Interpreter Lock (GIL)?**
4. **Can you explain the intricacies of metaclasses and how they influence object-oriented design in Python?**
5. **How would you go about implementing a distributed task queue using Celery and RabbitMQ?**
6. **What are some advanced use-cases for Python's decorators?**
7. **How can you achieve real-time data streaming in Python with WebSockets?**
8. **What are the
/r/Python
https://redd.it/1fymjo9
How to find remote world wide jobs?
I'm currently working at a small company in my hometown. Python and especially django are not common here. Where I'm working modern technologies like microservices architecture, Test-Driven Development (TDD), or cutting-edge tools aren't used. I'm eager to work on high-load projects. Additionally, I'm looking for opportunities with a higher salary. Are there any other platforms besides Upwork where I can find worldwide remote jobs or roles that offer relocation?
/r/django
https://redd.it/1fy7jhf
Built an AI Engineer to Help with Django – Try it Out!
Hey r/Django,
I’ve been building an AI engineer designed to help with Django coding. It’s connected to the codebase, so you can ask technical questions and get help with issues. It’s not just an LLM, but an agent that thinks through your questions and steps to resolve them.
As a fellow Django dev, I know how frustrating it is to sift through documentation, log files and forums to find answers. I trained it on the Django open-source repo, so whether you’re exploring features, checking issues, or troubleshooting your code, Remedee is ready to go.
Try it here: chat.remedee.ai
I’d love your feedback – let me know what you think!
/r/django
https://redd.it/1fy3ss4
Bleak and Kivy, somebody can share a working example for Android?
Hi.
I try the bleak example to run a kivy app with bluetooth support in android.
https://github.com/hbldh/bleak/tree/develop/examples/kivy
But i cannot make it to work.
Can somebody please share a code related to that? i mean bleak, kivy, android.
Thanks!
/r/Python
https://redd.it/1fxx23a
Arakawa: Build data reports in 100% Python (a fork of Datapane)
I forked Datapane (https://github.com/datapane/datapane) because it's not maintained but I think it's very useful for data analysis and published a new version under a new name.
https://github.com/ninoseki/arakawa
The functionalities are same as Datapane but it can work along with newer DS/ML libraries such as Pandas v2, NumPy v2, etc.
## What My Project Does
Arakawa makes it simple to build interactive reports in seconds using Python.
Import Arakawa's Python library into your script or notebook and build reports programmatically by wrapping components such as:
- Pandas DataFrames
- Plots from Python visualization libraries such as Bokeh, Altair, Plotly, and Folium
- Markdown and text
- Files, such as images, PDFs, JSON data, etc.
Arakawa reports are interactive and can also contain pages, tabs, drop downs, and more. Once created, reports can be exported as HTML, shared as standalone files, or embedded into your own application, where your viewers can interact with your data and visualizations.
## Target Audience
DS/ML people or who needs to create a visual rich report.
## Comparison
Possibly Streamlit and Plotly Dash. But a key difference is whether it's dynamic or static.
Arakawa creates a static HTML report and it's suitable for periodical reporting.
/r/Python
https://redd.it/1fxuqh5
What is the best approach to avoid repetition of a try-except structure when fetching models?
I’m fetching data across multiple models and have the following try-exception structure repeated a lot:
try:
model .get / .filter
except Model.DoesNotExist:
handle…
except Model.MultipleInstancesReturned:
handle…
Is it bad to just have this structure repeated across every model I’m querying or is there a cleaner way to generalize this without so much repetition?
/r/django
https://redd.it/1fxk9xr
Complete Reddit Backup- A BDFR enhancement: Archive reddit saved posts periodically
What My Project Does
The BDFR tool is an existing, popular and thoroughly useful method to archive reddit saved posts offline, supporting JSON and XML formats. But if you're someone like me that likes to save hundreds of posts a month, move the older saved posts to some offline backup and then un-save these from your reddit account, then you'd have to manually merge last month's BDFR output with this month's. You'd then need to convert the BDFR tool's JSON's file to HTML separately in case the original post was taken down.
For instance, On September 1st, you have a folder for (https://www.reddit.com/r/soccer/) containing your saved posts from the month of August from the BDFR tool. You then remove August's saved posts from your account to keep your saved posts list concise. Then on October 1st, you run it again for posts saved in September. Now you need to add (https://www.reddit.com/r/soccer/)'s posts which were saved in September with those of August's, by manually copy-pasting and removing duplicates, if any. Then repeat the same process subreddit-wise.
I made a script to do this, while also using bdfrtohtml to render the final BDFR output (instead of leaving the output in BDFR's JSONs/xml). I have also grouped saved posts by subreddit in
/r/Python
https://redd.it/1fxeglk
I wanna create something fun and useful in Python
So recently, I wrote a script in Python that grabbed my Spotify liked songs, searched them on Youtube and downloaded them in seconds. I downloaded over 500 songs in minutes using this simple program, and now I wanna build something more. I have intermediate Python skills and am exploring web scraping (enjoying too!!).
What fun ideas do you have that I can check out?
/r/Python
https://redd.it/1fxd8g3
How to measure python coroutine context switch time?
I am trying to measure context switch time of coroutine and python thread by having 2 threads waiting for a event that is set by the other thread. Threading context switch takes 3.87 µs, which matches my expectation as OS context switch does takes a few thousands of instructions. The coroutine version's context switch is 14.43 µs, which is surprising to me as I was expecting coroutine context switch to be magnitude faster. Is it a Python coroutine issue is my program wrong?
Code can be found in this gist.
Rewriting the program in rust gives more reasonable results: coro: 163 ns thread: 1989 ns
/r/Python
https://redd.it/1fx9tgr
Python 3 Reduction of privileges in code - problem (Windows)
The system is Windows 10/Windows 11. I am logged in and I see the desktop in the Account5(no administrator privileges). A python script run in this account using the right mouse button run as Administrator. A script for applying many operations that require administrator privileges. Nevertheless, one piece of code could be run in the context and with access to the logged in Windows account (Account5). Here is the code (net use is to be executed in the context of the logged in Windows account).
Here is code snippet:
def connect_drive(self):
login = self.entry_login.get()
password = self.entry_password.get()
if not login or not password:
messagebox.showerror("Błąd", "Proszę wprowadzić login i hasło przed próbą połączenia.")
return
try:
/r/Python
https://redd.it/1fwze07
Sunday Daily Thread: What's everyone working on this week?
# Weekly Thread: What's Everyone Working On This Week? 🛠️
Hello /r/Python! It's time to share what you've been working on! Whether it's a work-in-progress, a completed masterpiece, or just a rough idea, let us know what you're up to!
## How it Works:
1. Show & Tell: Share your current projects, completed works, or future ideas.
2. Discuss: Get feedback, find collaborators, or just chat about your project.
3. Inspire: Your project might inspire someone else, just as you might get inspired here.
## Guidelines:
Feel free to include as many details as you'd like. Code snippets, screenshots, and links are all welcome.
Whether it's your job, your hobby, or your passion project, all Python-related work is welcome here.
## Example Shares:
1. Machine Learning Model: Working on a ML model to predict stock prices. Just cracked a 90% accuracy rate!
2. Web Scraping: Built a script to scrape and analyze news articles. It's helped me understand media bias better.
3. Automation: Automated my home lighting with Python and Raspberry Pi. My life has never been easier!
Let's build and grow together! Share your journey and learn from others. Happy coding! 🌟
/r/Python
https://redd.it/1fx3vfc
Niquests v3.9.0 Released
We are proud to announce our latest advancement for Niquests. Since last time we published in
this community, a lot of things happened.
We landed for you:
- Post-Quantum Security for QUIC
- QUIC v2
- Integrated WebSocket Support
- HTTP Trailers
- Early Responses like "103 Early Hints"
- Happy EyeBalls
The project reached 800+ stars with half a million downloads since the beginning.
We are grateful to Microsoft and involved parties for funding our work through the Microsoft FOSS Fund program.
What My Project Does
Niquests is a HTTP Client. It aims to continue and expand the well established Requests library.
For many years now, Requests has been frozen. Being left in a vegetative state and not evolving,
this blocked millions of developers from using more advanced features.
Target Audience
It is a production ready solution. So everyone is potentially concerned.
Comparison
Niquests is the only HTTP client capable of serving HTTP/1.1, HTTP/2, and HTTP/3 automatically.
The project went deep into the protocols (early responses, trailer headers, etc...) and all related
networking essentials (like DNS-over-HTTPS, advanced performance metering, etc..)
You may find the project at: https://github.com/jawah/niquests
/r/Python
https://redd.it/1fyv8uh
I love Django! I don't use any third party django extensions, am I missing out?
Hello everyone,
Django has been really good lately for the different applications I use. Beyond the code, even the philosophy of Django has helped me structured my thinking. I also started using Cookie Cutter, that stuff is awesome. I have been tempted to use certain django extensions such as Django Markdown (for supporting markdown) and Django Ledger (for accounting stuff I knew now much about).
In the end, I didn't implement neither because I found alternative solutions. I would really love hearing from the community?
1. Do you stand by any specific django extensions that you use in your projects?
2. How is your experience like as a someone who contributes to extensions?
3. What were some of your negative experiences with extensions?
/r/django
https://redd.it/1fyspu3
Just Released Version 0.5.0 of Django Action Triggers!
First off, a huge thank you to everyone who provided feedback after the release of version 0.1.0! I've taken your input to heart and have been hard at work iterating and improving this tool. I’m excited to announce the release of version 0.5.0 of django-action-triggers.
There’s still more to come in terms of features and addressing suggestions, but here’s an overview of the current progress.
# What is Django Action Triggers
Django Action Triggers is a Django library that lets you trigger specific actions based on database events, detected via Django Signals. With this library, you can configure actions that run asynchronously when certain triggers (e.g., a model save) are detected.
For example, you could set up a trigger that hits a webhook and sends a message to AWS SQS whenever a new sale record is saved.
# Supported Integrations?
Here’s an overview of what integrations are currently supported:
Webhooks
RabbitMQ
Kafka
Redis
AWS SQS (Simple Queue Service)
AWS SNS (Simple Notification Service)
AWS Lambda (New in version 0.5.0)
GCP Pub/Sub (New in version 0.5.0)
# Comparison
The closest alternative I've come across is Debezium. Debezium allows streaming changes from databases. This project is different and is more suited for people who want a Django integration in the form of a library. Debezium on
/r/djangolearning
https://redd.it/1fyn2vt
Just Released Version 0.5.0 of Django Action Triggers!
First off, a huge thank you to everyone who provided feedback after the release of version 0.1.0! I've taken your input to heart and have been hard at work iterating and improving this tool. I’m excited to announce the release of version 0.5.0 of django-action-triggers.
There’s still more to come in terms of features and addressing suggestions, but here’s an overview of the current progress.
# What is Django Action Triggers
Django Action Triggers is a Django library that lets you trigger specific actions based on database events, detected via Django Signals. With this library, you can configure actions that run asynchronously when certain triggers (e.g., a model save) are detected.
For example, you could set up a trigger that hits a webhook and sends a message to AWS SQS whenever a new sale record is saved.
# Supported Integrations?
Here’s an overview of what integrations are currently supported:
Webhooks
RabbitMQ
Kafka
Redis
AWS SQS (Simple Queue Service)
AWS SNS (Simple Notification Service)
AWS Lambda (New in version 0.5.0)
GCP Pub/Sub (New in version 0.5.0)
# Comparison
The closest alternative I've come across is Debezium. Debezium allows streaming changes from databases. This project is different and is more suited for people who want a Django integration in the form of a library. Debezium on
/r/django
https://redd.it/1fyn1vo
Python 3.13 released
https://www.python.org/downloads/release/python-3130/
> This is the stable release of Python 3.13.0
>
> Python 3.13.0 is the newest major release of the Python programming language, and it contains many new features and optimizations compared to Python 3.12. (Compared to the last release candidate, 3.13.0rc3, 3.13.0 contains two small bug and some documentation and testing changes.)
>
> Major new features of the 3.13 series, compared to 3.12
>
> Some of the new major new features and changes in Python 3.13 are:
>
> New features
>
> - A new and improved interactive interpreter, based on PyPy's, featuring multi-line editing and color support, as well as colorized exception tracebacks.
> - An experimental free-threaded build mode, which disables the Global Interpreter Lock, allowing threads to run more concurrently. The build mode is available as an experimental feature in the Windows and macOS installers as well.
> - A preliminary, experimental JIT, providing the ground work for significant performance improvements.
> - The locals() builtin function (and its C equivalent) now has well-defined semantics when mutating the returned mapping, which allows debuggers to operate more consistently.
> - A modified version of mimalloc is now included, optional but
/r/Python
https://redd.it/1fybncq
D Simple Questions Thread
Please post your questions here instead of creating a new thread. Encourage others who create new posts for questions to post here instead!
Thread will stay alive until next one so keep posting after the date in the title.
Thanks to everyone for answering questions in the previous thread!
/r/MachineLearning
https://redd.it/1fxif7x
Helios: a light-weight system for training AI networks using PyTorch
# What My Project Does
Helios is a light-weight package for training ML networks built on top of PyTorch. I initially developed this as a way to abstract the boiler-plate code that I kept copying around whenever I started a new project, but it's evolved to do much more than that. The main features are:
* It natively supports training by number of epochs, number of iterations, or until some condition is met.
* Ensures (as far as possible) to maintain reproducibility whenever training runs are stopped and restarted.
* An extensive registry system that enables writing generic training code for testing multiple networks with the same codebase. It also includes a way to automatically register all classes into the coressponding registries without having to manually import them.
* Native support for both single and multi-GPU training. Helios will automatically detect and use all GPUs available, or only those specified by the user. In addition, Helios supports training through torchrun.
* Automatic support for gradient accumulation when training by iteration count.
# Target Audience
* Developers who want a simpler alternative to the big training packages but still want to abstract portions of the training code.
* Developers who need to test multiple
/r/Python
https://redd.it/1fxuqid
Monday Daily Thread: Project ideas!
# Weekly Thread: Project Ideas 💡
Welcome to our weekly Project Ideas thread! Whether you're a newbie looking for a first project or an expert seeking a new challenge, this is the place for you.
## How it Works:
1. **Suggest a Project**: Comment your project idea—be it beginner-friendly or advanced.
2. **Build & Share**: If you complete a project, reply to the original comment, share your experience, and attach your source code.
3. **Explore**: Looking for ideas? Check out Al Sweigart's ["The Big Book of Small Python Projects"](https://www.amazon.com/Big-Book-Small-Python-Programming/dp/1718501242) for inspiration.
## Guidelines:
* Clearly state the difficulty level.
* Provide a brief description and, if possible, outline the tech stack.
* Feel free to link to tutorials or resources that might help.
# Example Submissions:
## Project Idea: Chatbot
**Difficulty**: Intermediate
**Tech Stack**: Python, NLP, Flask/FastAPI/Litestar
**Description**: Create a chatbot that can answer FAQs for a website.
**Resources**: [Building a Chatbot with Python](https://www.youtube.com/watch?v=a37BL0stIuM)
# Project Idea: Weather Dashboard
**Difficulty**: Beginner
**Tech Stack**: HTML, CSS, JavaScript, API
**Description**: Build a dashboard that displays real-time weather information using a weather API.
**Resources**: [Weather API Tutorial](https://www.youtube.com/watch?v=9P5MY_2i7K8)
## Project Idea: File Organizer
**Difficulty**: Beginner
**Tech Stack**: Python, File I/O
**Description**: Create a script that organizes files in a directory into sub-folders based on file type.
**Resources**: [Automate the Boring Stuff: Organizing Files](https://automatetheboringstuff.com/2e/chapter9/)
Let's help each other grow. Happy
/r/Python
https://redd.it/1fxukcp
Are there any DX standards for building API in a Python library that works with dataframes?
I'm currently working on a Python library (kawa) that handles and manipulates dataframes. My goal is to design the library so that the "backend" of the library can be swapped if needed with other implementations, while the code (method calls etc) of the library do not need changing. This could make it easier for consumers to switch to other libraries later if they don't want to keep using mine.
I'm looking for some existing standard or conventions used in other similar libraries that I can use as inspiration.
For example, here's how I create and load a datasource:
import pandas as pd
import kawa
...
citiesandcountries = pd.DataFrame(
{'id': 'a', 'country': 'FR', 'city': 'Paris', 'measure': 1},
{'id': 'b', 'country': 'FR', 'city': 'Lyon', 'measure': 2},
)
uniqueid = 'resource{}'.format(uuid.uuid4())
loader = kawa.newdataloader(df=self.citiesandcountries, datasourcename=uniqueid)
loader.createdatasource(primarykeys='id')
loader.loaddata(resetbeforeinsert=True, createsheet=True)
and here's how I manipulate (run compute) the created datasource (dataframe):
import pandas as pd
import kawa
/r/Python
https://redd.it/1fxbf9o
Python is awesome! Speed up Pandas point queries by 100x or even 1000x times.
Introducing NanoCube! I'm currently working on another Python library, called CubedPandas, that aims to make working with Pandas more convenient and fun, but it suffers from Pandas low performance when it comes to filtering data and executing aggregative point queries like the following:
value = df.loc(df['make'.isin('Audi', 'BMW') & (df'engine' == 'hybrid')]'revenue'.sum()
So, can we do better? Yes, multi-dimensional OLAP-databases are a common solution. But, they're quite heavy and often not available for free. I needed something super lightweight, a minimal in-process in-memory OLAP engine that can convert a Pandas DataFrame into a multi-dimensional index for point queries only.
Thanks to the greatness of the Python language and ecosystem I ended up with less than 30 lines of (admittedly ugly) code that can speed up Pandas point queries by factor 10x, 100x or even 1,000x.
I wrapped it into a library called NanoCube, available through pip install nanocube
. For source code, further details and some benchmarks please visit https://github.com/Zeutschler/nanocube.
from nanocube import NanoCube
nc = NanoCube(df)
value = nc.get('revenue', make='Audi', 'BMW', engine='hybrid')
Target audience: NanoCube is useful for data engineers, analysts and scientists who want to speed up their data processing. Due
/r/Python
https://redd.it/1fxgkj6
Having trouble inserting new element on table
I'm new to Flask and I'm not used to tables in python, I wanted to ask for a hint on how to solve the following problem and I would really appreciate some help if possible, thanks in advance
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) table posts has no column named user_id
[SQL: INSERT INTO posts (title, content, user_id) VALUES (?, ?, ?)\]
[parameters: ('First Post', 'hi', 3)\]
Here's the code,
class users(db.Model):
id = db.Column("id", db.Integer, primarykey=True)
name = db.Column(db.String(100))
email = db.Column(db.String(100))
def init(self,name,email):
self.name = name
self.email = email
class posts(db.Model):
id = db.Column("id", db.Integer, primarykey=True)
title = db.Column( db.String(255), nullable = False)
content = db.Column( db.String(1000))
userid = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
def init(self,title,content,userid):
/r/flask
https://redd.it/1fwvpgy
Is objects.all() truly lazy?
https://docs.djangoproject.com/en/1.10/ref/models/querysets/#when-querysets-are-evaluated
/r/djangolearning
https://redd.it/1fx51rf
Terminal Anime Browsing redefined
What my project does:
I made a python package FastAnime, that replicates the experience you would get from watching anime from a browser in the terminal. It uses yt-dlp to scrape the sites, rich and inquirerPy for the ui and click for the commandline interface. It also supports fzf and rofi as external menus.
It mostly intergrates the anilist api to achieve most of this functionality.
Target Audience:
The project's goal was to bring my love of anime to the terminal.
So its aimed at those anime enthusiasts who prefer doing everything from the terminal.
Comparison:
The main difference between it and other tools like it is how robust and featureful it is:
sync play intergration
anilist syncing
view whats trending
watch trailers of upcoming anime
score anime directly from your terminal
powerful search and filter capability a kin to one in a browser
intergration with python mpv to enable a seamless viewing experience without ever closing the player
batch downloading
manage your anilist anime lists directly from the terminal
highly configurable
nice ui
and so on ...
https://github.com/Benex254/FastAnime
/r/Python
https://redd.it/1fwt65b
Server Side rendered Datatables with Django
Just wrapped up a project where I had to handle a massive table with DataTables and Django. Thought I'd share my experience and maybe save someone else a headache.
The challenge: Display thousands of records with dynamic columns, sorting, and filtering - all server-side. Oh, and it needed to be blazing fast.
Here's what worked for me:
1. Custom Django view to process DataTables requests
2. Dynamic column generation based on user permissions
3. Efficient database queries with select\_related()
4. Complex sorting and filtering logic handled server-side
5. Pagination to keep things snappy
The trickiest part was definitely the dynamic ordering. I ended up writing a function to translate DataTables' sorting parameters into Django ORM-friendly format. It was a pain to debug, but works like a charm now.
Performance-wise, it's holding up well. Tables load quickly, and sorting/filtering feels smooth.
Key takeaways:
* Server-side processing is crucial for large datasets
* Plan your dynamic columns carefully
* Efficient querying is your best friend
i also wrote a blog about this - [https://selftaughtdev.hashnode.dev/mastering-complex-datatables-with-django-a-deep-dive-into-server-side-processing](https://selftaughtdev.hashnode.dev/mastering-complex-datatables-with-django-a-deep-dive-into-server-side-processing)
/r/django
https://redd.it/1fwqlwk