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
[AF] How to properly test view functions?

So I have this view function:

@app.route('/submit', methods=['GET', 'POST'])
@login_required
def submit():
"""View function for the submit site, which contains a standard
form. Creates initial variables for mutable variables like
upvotes, downvotes and importance, to avoid any TypeErrors."""
form = SubmitForm()
if form.validate_on_submit():
post = Post(title=form.title.data, text=form.text.data, user_id=current_user.id, topics=[Topic(tag_name=form.topics.data)])
post.upvotes = 1
post.downvotes = 0
post.importance = 1
post.score = post.get_score()
db.session.add(post)
db.session.commit()

flash('You have now made a post!')
return redirect(url_for('index'))
return render_template('submit.html', title='Submit', form=form)

How would I properly test this works?

The testing function I'm using is this:

def test_submit(self):
"""Tests to see whether the /submit route will work"""
self.post = Post(title="Title", text="Text", user_id=1, topics=[Topic(tag_name="topic1"), Topic(tag_name="topic2")])
self.post.upvotes = 1
self.post.downvotes = 0
self.post.importance = 1
self.post.score = self.post.get_score()
db.session.add(self.post)
db.session.commit()
self.assertTrue(Post.query.filter_by(text="Text").first())
self.assertFalse(Post.query.filter_by(text="Not me").first())

I know this isn't the proper way of doing things, so how should I do it?

Here is the rest of my testing file, if needed:

https://github.com/ModoUnreal/dopenet/blob/master/tests/test_posts.py

/r/flask
https://redd.it/8h19nu
[AF] How do I send data route to route, in order to maintain a dynamic form?

This question is probably not asked correctly. I'll try to explain better below. I am also new to python and flask.

I am creating a flask web interface for a simple inventory system we have. I'm trying to have the following interaction:

USER: <Inputs part number into appropriate field>
SERVER: <Checks to see if on file>

if on file

SERVER: "Place bin on scale."
USER: <Places bin on scale>
*SCALE: <Weighs item and sends value to server>

*My issue

Here is my issue: the scale data sent is not within scope of the "inventory" route. Is there a better way to go about this?

**My Direction:**

I want the user to have the form readily available for another form input if necessary. I also want to print the new data with some data pulled from the database after the item is weighed.

**app/routes.py**

from flask import render_template, flash, redirect, url_for, request, jsonify
from app import app, db
from app.forms import LoginForm, RegistrationForm, PrintLabelForm, \
InventoryForm1, InventoryForm2
from flask_login import current_user, login_user, logout_user, login_required
from app.models import *
import scale as s

@app.route('/inventory', methods=['GET', 'POST'])
@login_required
def inventory():
form = InventoryForm1()
# if form.validate_on_submit(): # Checks form submission syntax validity
if "submit" in request.form: # Checks form submission syntax validity
item = Items.query.filter_by(ItemCode=form.itemCode.data).first()
measurement = Measurements.query.filter_by(partNumber=form.itemCode.data).first()

# Checks if part number field is correct
if item is None: # No input for the field
flash('Item not on file.')
return redirect(url_for('inventory'))
elif measurement is None: # No current measurements available
flash('No previous measurements found for, ' + item.ItemCodeDesc + '.')
flash('Place empty container on scale.')
# while container is not containerChange and keyboardIdle:
# await item data input
else: # Generate Item Report
flash('Place bin on scale.')
# User clicks "Weigh Item"

return render_template('inventory.html', title='Inventory', form=form)

@app.route('/weighItem', methods=['GET', 'POST'])
@login_required
def weighItem():
weight = s.runScale("getWeight", 0)
return jsonify(weight=weight)

**app/templates/base.html**

<script>
function weighItem() {
$.post('/weighItem', {
}).done(function(response) {
$("#result").text(response.weight);
alert(response.weight);
}).fail(function() {
$.text("Error: Could not contact server.");
});
}
</script>

**app/templates/inventory.html**

{% extends "base.html" %}
{% import 'bootstrap/wtf.html' as wtf %}

{% block app_content %}
<h1>Inventory</h1>
<div class="row">
<div class="col-md-4">
{{ wtf.quick_form(form) }}
<a href="javascript:weighItem()" id="weighItem">Weigh Item</a>
<p id="result"> </p>
</div>
</div>
{% endblock %}



**Some Notes:**

I am using the [https://github.com/tatobari/hx711py](https://github.com/tatobari/hx711py) for a scale.

/r/flask
https://redd.it/8h0ur9
django-bootstrap-datepicker-plus: Django Widget for bootstrap-datepicker for Django version 1.8, 1.10, 1.11 and 2.0.4.

I have published a date\-picker widget [django\-bootstrap\-datepicker\-plus](https://github.com/monim67/django-bootstrap-datepicker-plus) for `django` to support latest version keeping backward compatibility up to`djang`o version 1.8. Please let me know what you think of it. Any suggestion is highly appreciated and is what I am looking for.

/r/django
https://redd.it/8gza32
Storing millions and billions of URLs?

Hello Everyone!

Currently, using ElasticSearch for storing the meta data and other raw data information but it is a very small scale around 500,000 domains.

I have been tasked to scale it to 20-40 million domains and storing their internal/external links while building a page rank/domain authority score for each domain which we are adding to our database.

What do you guys suggest/recommend for storing this data at a very large scale as web page internal links/external links will be stored which will lead it over 100M-1B links database?

Any kind of feedback/suggestion would be appreciated.

Thanks.

/r/Python
https://redd.it/8h293k
How to make the transition from "python scripter" to "python software developer"?

Hello there. I recently got hired as software developer for some of the skills that I have, but none of those is actually being a good software developer. I'm writing Python code 5+ years now, but never really exposed my code to being reviewed, tested or criticized. The people I work with have not only more experience but their background also entails software development. I try to learn as much as possible from them when I read their Python code, but I want to get on a higher level in terms of coding quality as soon as possible.

Can you give me any tips how I can get there? Whether it is good article, book or a DOs and DONTs cheat-sheet, I don't know, but whatever it is I would appreciate some tips!

/r/Python
https://redd.it/8h2u16
Does anyone know a django app to handle Feature Requests?

I'm looking for something similar to [gog's Community Wishlist](https://www.gog.com/wishlist): users can submit requests for new features and the like, and other users can vote in which features they want the most.

Comments in each request would be appreciated, but aren't necessary.



/r/django
https://redd.it/8h38rj
Numpy FFT lots slower than Octave FFT?

After trying Octave and missing Python's features, I've been back to Python / Numpy. But now it's looking like Numpy is significantly slower? Here's the test. Python, about 10 seconds:

import numpy
numpy.fft.fft(numpy.ones(31257584))

Octave, about one second:

sum(fft(ones(1, 31257584)))

I'd rather use Python, but don't have time to wait for it.

/r/Python
https://redd.it/8h23xs
Just finished my graduation cap for tomorrow

/r/Python
https://redd.it/8h512c
flask restfull handle incorrect urls

I am using the Flask_restful package and I have a question. I have some paths like: /api/users/<int:id>/recepies. Everything works fine until you request this url without the id, like this: /api/users//recepies or /api/users/recepies, then it throws an error. Is there a way to catch this kind of errors?

/r/flask
https://redd.it/8gsqiz
migrating from sqlserver to postgres, issue with sqlserver_ado.fields.BigAutoField

I am trying to change our django from using M/S SQL server to postgres. One of the model fields is defined in the initial migration as sqlserver_ado.fields.BigAutoField(serialize=False, primary_key=True). After changing the database engine to postgres, the field is missing in the postgres database. If I try to migrate it to something like models.BigIntegerField(serialize=False, primary_key=True), I get the error "ValueError: Cannot alter field verosgui.MpWatchlistchange.chan_coun into verosgui.MpWatchlistchange.chan_coun - they do not properly define db_type (are you using PostGIS 1.5 or badly-written custom fields?)". Does anyone know how to migrate this field?

/r/django
https://redd.it/8h2q5c
How to run a task after flask server starts?

Hey guys, I'm trying to run my flask site in a pyqt5 GUI interface however after app.run(), all functions afterward are ignored until I close the server. This results in me getting a 404 from the PyQT interface. Anyone know how to run the flask server and allow a function to run after it? If it is possible, it would actually be better if I could run them at the same time. Thanks guys



**EDIT**: solved this actually
did the following

def pyqt_function():
#thing to be done by pyqt
t = threading.Thread(target=pyqt_function)
t.daemon = True
t.start()
app.run()


/r/flask
https://redd.it/8gs9zq
Python batch script in Windows

Need to run a python program multiple times with different arguments each time. Coming from Linux I would create a shell script and run a loop calling the python program. What is your preferred way to do this in Windows? Powershell? Open to all suggestions.

/r/Python
https://redd.it/8h7405
[P] Style2PaintsV3 released! Geometric Interactivity, Controllable Shadow Rendering, Better Skin Engine and More.

/r/MachineLearning
https://redd.it/8h2wzn
Would /r/django be interested in a livestream/VOD series building real-world Django apps from the ground up?

I've been thinking of starting up a streaming/VOD series that builds real-world applications from start to finish. My plan for the first stream would be building an RSS reader from scratch and going over the various concepts along the way. I'm a little tired of seeing all of the "Learn Web Development for Absolute Beginners" series that end after part 2 popping up all over the place. I'd love to create some content that builds an app with real value and be able to answer questions from people as I go along.

I want to gauge interest from the different communities to see what they think and figured I'd start here since I'd be using Django. What are your thoughts on the idea? Would you be interested in watching/participating?

Thanks for any feedback.

EDIT: alone -> along

/r/django
https://redd.it/8h87o2
Configuring position of docstrings?

When I check the docstring of a Python function, it opens at the bottom of the browser window. However, since my screen has the standard shape of being wider than high, this means that when running the Jupyter notebook there's a lot of wasted space at the sides. It would therefore be terrific to have the docstring open at the side of the notebook cells, rather than underneath them. I could then have a docstring open without losing any notebook screen real-estate.

Can this be done?

/r/JupyterNotebooks
https://redd.it/8h6w2w
Modern Django tooling and testing

Hi hackers,
I'm relatively new to Django but not to web development. What are some essential libraries and tools you use for modern Django development? What are some "must haves" in your Pipfile? And how are most folks testing these days?

Currently, I use:

[packages]
django = "*"
"psycopg2" = "*"
gunicorn = "*"
django-heroku = "*"
dj-database-url = "*"
whitenoise = "*"
django-dotenv = "*"

[dev-packages]
green = "*"

I am especially interested in testing, as the Python and/or Django test frameworks, aren't quite as powerful, out of the box, as what I'm used to from other ecosystems.

Bonus points for a "modern" guide to working with Django.


/r/django
https://redd.it/8har0u