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
Django best practices questions

So i have been building apps since 2012, and now im starting on a larger project with Python, and django + DRF.

I have used various langauges, but never done anything serious with python before. So im uncertain of some choises and hope i dont make the wrong ones in the start of the project.

Would love to get some advice from you guys!

1) Should i have a models ”app” and keep all models there, or should each app have their own models?

2) When working with DRF is it best to use ApiView, function views or more generic class based views. Note i probably will have to have custom logic in what data is returned, this app will be a crm like app, with lots of real time stuff.

3) How much should i separate my code into apps? Is there a good rule of thumb to remember when i should create a new app?

4) I found this https://github.com/gothinkster/django-realworld-example-app is it s good example how things should be setup?



Thank you for reading!

/r/django
https://redd.it/87p2m6
Flask-Security with Flask-Admin, how to use two different login forms?

I am building a flask boilerplate site and I am using flask admin so I can create users (its an "internal" site with no registrations).

So I have a login form where the admin can login and create user, but I also want to have a regular login where users can log into the site.

They're pretty much the same login just a different form and look? Is that possible or should I have them route to the same form and then have non admin redirect to the home page and the admin can redirect to the admin backend?

Right now I am using a context processor to hook into flask-admin:

# define a context processor for merging flask-admin's template context into the
# flask-security views.
@security.context_processor
def security_context_processor():
return dict(
admin_base_template=admin.base_template,
admin_view=admin.index_view,
h=admin_helpers,
get_url=url_for
)

So that the url_for('security.login') will direct you to /mysite/admin/login?
Is there a way to break it so that, url_for('security.admin.login') directs to /mysite/admin/login
and url_for('security.login') directs to /mysite/login?

Something along those lines.

/r/flask
https://redd.it/87v277
Using Flask with GraphQL

Hey guys,

I'm trying to create a small application using GraphQL and Flask. I'm currently running into issues getting it all working together. I might be doing something very silly as I'm quite new to GraphQL but I keep getting the following error:

{
"errors": [
{
"message": "mutate() got an unexpected keyword argument 'name'",
"locations": [
{
"line": 2,
"column": 3
}
]
}
],
"data": {
"createUser": null
}
}

The code that I have in my schema.py is:

import graphene
from graphene import relay
from graphene_sqlalchemy import SQLAlchemyConnectionField, SQLAlchemyObjectType
from models import User as UserModel
from sqlalchemy import and_
from app import db

class Users(SQLAlchemyObjectType):
class Meta:
model = UserModel
interfaces = (relay.Node, )


# Used to Create New User
class createUser(graphene.Mutation):
class Arguments:
name = graphene.String()
age = graphene.Int()

user = graphene.Field(Users)

@classmethod
def mutate(cls, _, args, context, info):
user = UserModel(name=args.get('name'), age=args.get('age'))
db.session.add(user)
db.session.commit()
ok = True
return createUser(user=user)

class Query(graphene.ObjectType):
node = relay.Node.Field()
user = SQLAlchemyConnectionField(Users)

class MyMutations(graphene.ObjectType):
create_user = createUser.Field()


schema = graphene.Schema(query=Query, mutation=MyMutations, types=[Users])

I was trying to follow: https://github.com/Getmrahul/Flask-Graphene-SQLAlchemy but I was trying to use flask-sqlalchemy also. Any help would be greatly appreciated as I'm rather stumped. Thank you!

/r/flask
https://redd.it/87t9m5
Trouble understanding syntax with filtering Django models

I see this:
file_obj = Results.objects.using('tool').filter(id=fooid)
I know it is filtering a collection of Results by fooid. I'm not sure yet what 'tool' is referring to. What does the using keyword do here?

/r/djangolearning
https://redd.it/87uvg2
Static files dont work on pythonanywhere, even though i set them up correctly and use collectstatic

Hello... so, its been so annoying please help..

I created new django site on pythonanywhere.com but admin site loads without style.

I put these settings in settings.py file:

STATIC_URL = '/static/'

STATIC_ROOT ='static'

I used python manage.py collectstatic command and it created new admin folder (with css, js etc.) int my static folder.

BUT ADMIN SITE IS STILL WITHOUT STYLES. WHAT IS THIS

please help

p.s. im using virutalenv created with virtualwrapper

p.s.s. its working if i put /static/ folder into Static Files on pythonanywhere.com web panel. But tutorials said thats its a bad way to do this. HELP

/r/djangolearning
https://redd.it/87zfl4
Submit flask application to PyPi

I would like to submit my flask application to PyPi, so that other users will be able to use the application themselves. I know how to write a setup.py file. But I'd like to know how the user would start the server. Should I create an entry point or is there a better solution for that?

/r/flask
https://redd.it/8810jg
Can I use Jupyterhub with ipyleaflet

I have Hadoop / Spark infrastructure on an isolated (from www) cluster. The edge node should run a Jupyterhub server where users can start notebooks from. Is it easily possible for the user (within his frontend / browser) to use ipyleaflet or other map tools or do I have to grant the server access to the www?

/r/IPython
https://redd.it/87zifl
[P] Leela Chess Zero: The fork of Leela Zero for chess, an open-source distributed effort to reproduce Deepmind's AlphaZero.

I think most of the people here followed Deepmind's AlphaGo, then AlphaGoZero and finally AlphaZero's achievements. However Google did not release the weights for all thoses networks, so a community has formed trying to reproduce and maybe improve the AlphaZero engine.

To do this, a distributed effort to play self-play games has started, and the training is done on a single powerful computer (It can update the weights in about 5 hours currently).

You can see the self-play ELO curve (not representative of real ELO) on the [website](http://lczero.org/).

If you want to help the project by sharing your GPU/CPU, think about following the instructions on the "Getting Started" section of the website.

As of now, it would take about 400 days to reach the 44.000.000 games played by Deepmind, but that could change thanks to you!

Some useful links to learn more and talk about the project:

* Try playing her yourself! (all calculations done server-side): http://play.lczero.org/
* Website: http://lczero.org
* Getting started: https://github.com/glinscott/leela-chess/wiki/Getting-Started
* GitHub: https://github.com/glinscott/leela-chess/
* Discord: https://discord.gg/pKujYxD
* Forum: https://groups.google.com/forum/#!forum/lczero

Also for some fancy stats here is her learning to castle:
https://i.imgur.com/J8t7bf4.png

Her learning not to move the king early (not including castling):
https://i.imgur.com/aWqOsNg.png

Some piece movements from one of the latests gen: https://i.imgur.com/C5SAZs6.png

Other stats (such as openings) can be found here: https://github.com/glinscott/leela-chess/issues/166

/r/MachineLearning
https://redd.it/88035j
A great course for not only beginners but for people who'd like to do a quick Django refresher. Even I'm working with Django for a while already, I learned one or two new hints that will help me to improve my code in the future.
http://www.certifiedonlinecourses.website/the-ultimate-beginners-guide-to-django-python-web-dev-website

/r/django
https://redd.it/88515h
Copy and turn django_filters context into geojson

I am working on a page where I have django_filters and a django_table2 table rendered. I want to copy the filtered context into a geojson so that I can load a leaflet map in the template that changes when the information is filtered.

I am able to get and print the context data like so:
class FilteredPermitListView(SingleTableMixin, FilterView):
table_class = PermitTable
model = Permit
template_name = 'permit/permit_listview.html'

filterset_class = PermitFilter

def get_context_data(self, **kwargs):
'''
Overriden version of `.TemplateResponseMixin` to inject the table into
the template's context.
'''
context = super(SingleTableMixin, self).get_context_data(**kwargs)
table = self.get_table(**self.get_table_kwargs())
context[self.get_context_table_name(table)] = table
print(context['permit_list'])
return context

Here is a truncated view of my model:

class Permit(models.Model):
abstract = models.CharField(max_length=255, null=True, blank=True)
api_10 = models.CharField(max_length=255, null=True, blank=True)
approved_date = models.DateField(null=True, blank=True)
block = models.CharField(max_length=255, null=True, blank=True)

My plan is to loop through the context data and great geojson to be added to the context but I cant figure out how to loop through the values. If I change this line:

print(context['permit_list'])

Into this line:

print(context['permit_list']['abstract'])

['abstract'] is one of the columns in the permit model. It just gives me an 500 error.

I think I need to get something from the queryset in the context but I'm lost. Does anyone know what I'm doing wrong?

/r/django
https://redd.it/884tdh
Help needed getting a distinct ordered queryset from two tables..

I'm trying to get an ordered queryset (or just values_list) from Django ORM but having trouble getting the right results. I am using Mysql, so I can't use distinct('price'). The following SQL is working:

SELECT DISTINCT p.price_category_id FROM shop_price AS p
JOIN shop_stock AS s ON p.product_id = s.product_id
WHERE p.product_id = 123
AND p.price_category_id = s.price_category_id
AND s.sold_out = False
ORDER BY p.price DESC


/r/django
https://redd.it/881xd9