Python Daily
2.57K subscribers
1.48K photos
53 videos
2 files
38.8K 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] Request.referrer gives BuildError when redirecting to the same endpoint.

Hi, so I have a website that enables voting, much like on reddit, and I've tried to make it so that whenever the user votes he is instantly redirected back to wherever he initially viewed a post. So say I upvoted a post when viewing it, I expect to be redirected back to the post, not the front page.

Here is the code I used, taken from a snippet:

def redirect_url():
return request.args.get('next') or \
request.referrer or \
url_for('index')

And here is where it is implemented:

@app.route('/vote/<post_id>', methods=['POST'])
def vote(post_id):
post = Post.query.filter_by(id=post_id).first()
if post != None:
if post.upvotes == None:
post.make_vote_int()

if "upvote" in request.form:
post.upvotes = post.upvotes + 1
post.get_score()
db.session.commit()
if "downvote" in request.form:
post.downvotes = post.downvotes + 1
post.get_score()
db.session.commit()

return redirect(url_for(redirect_url()))

Using this I receive this error:

werkzeug.routing.BuildError: Could not build url for endpoint 'http://localhost:5000/

when voting wherever.

What am I doing wrong and how can I fix it?

Here is the github link, however I haven't yet pushed this code yet.

https://github.com/ModoUnreal/dopenet

/r/flask
https://redd.it/8efkzl
My first calculator with python and Tkinter...

/r/Python
https://redd.it/8ecfkv
I shipped my first real Django project, an easy way to make your own job board

Hey there y'all! I recently built [Seeker](https://seeker.company), an easy way for people to make their own paid job boards. I built this using Django in the back-end with Django Rest Framework and Vue.js on the front-end. Postgres is the database (hosted in Google Cloud) and it's deployed to Heroku.

/r/django
https://redd.it/8egd1h
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/8ekob5
Integrating S3 (static + media vs media)

This isn't specific to Django or S3 but conceptually it should be the same. I'm using Flask \+ Digital Ocean Spaces \(API is compatible with S3\) but I figured that this subreddit would have a larger reach, especially since I've found way more S3\+Django tutorials than Spaces\+Flask/S3\+Flask. I'm just looking for a conceptual understanding on how I should integrate S3.

My application is running on DO behind Nginx. Nginx is configured to serve my static files. I wanted to move my user\-uploaded media files onto S3.

I've noticed that most tutorials explain how to serve your static assets \(JS/CSS\) and media files from S3 using something like django\-storages \(flask\-s3 is the flask counterpart\) \+ boto3.

1. Would it be unidiomatic to configure S3 to serve only media files? I just wanted to make sure because I've just deployed my site a week ago and this is all new to me. This makes sense to me but I didn't want to go against the grain for no reason.
2. The only advantage for serving static assets \(JS/CSS\) from S3 is to take advantage of a CDN \(e.g. Cloudfront\) so that your reverse proxy \(e.g. Nginx\) can focus only on load balancing, right? I always had the idea that S3 was primarily for media files to save space on your VM. I never thought people used it for static assets too.

EDIT:

**TLDR: Static assets: Nginx or S3?**

/r/django
https://redd.it/8emhrq
Google PageSpeed is saying my server response time is too long (340ms). How can I improve it ?

I'm using PythonAnywhere for hosting.

I've installed django-debug-toolbar but don't really know how to use it. It's reporting 76 queries in 42ms for SQL, which doesn't seem to be causing my issue.

This is my PageSpeed link : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fwww.tavolia.fr%2F

/r/djangolearning
https://redd.it/8emq9z
What is up with this return redirect line?

main is just my homepage and / is the url. For some reason, I can't get signUp to return back to the homepage after finishing.
return redirect(function) goes return redirect(main) (since thats the name of home being rendered.

I can also confirm 'here' and 'Registered' get printed. Also, in my terminal, i get

127.0.0.1 - - [23/Apr/2018 23:13:51] "GET / HTTP/1.1" 200 -

Which means it SHOULD be going to home, because I get the same line when I just click the home link on the page. It redirects too. What happens with the flask is it just stays on the login page. Nothing else, no errors thrown. Just sits there.

@app.route("/")
def main():
return render_template('Senty.html')

@app.route('/signUp',methods=['POST','GET'])
def signUp():
# still need to create signup class and transfer below code to new file
conn = mysql.connect()
cur = conn.cursor()

try:
_name = request.form['inputName']
_email = request.form['inputEmail']
_password = request.form['inputPassword']

# validate the received values
if _name and _email and _password:

cur.callproc('sp_createUser',(_name,_email,_password,))
print ("Registered")
data = cur.fetchall()

conn.commit()
json.dumps({'message':'User created successfully !'})
print('here')
return redirect(url_for('main'))

#else:
#return json.dumps({'html':'<span>Enter the required fields</span>'})

#except Exception as e:
#return json.dumps({'error':str(e)})

finally:
cur.close()
conn.close()

@app.route('/showSignIn')
def showSignIn():
return(render_template('login.html'))

I'm not sure where to go. I feel like I've tried everything.


/r/flask
https://redd.it/8ei5hq
Looking for guidance on creating models

Hi, I have a python script for teachers with some dummy data but now I would like to serve it on the web for others to use.

I ultimately want to create a table where the user can create their own schedule with these input fields:

* the table's name should be the teacher's first and last name
* the x\-axis are the days of the week \(Mon \- Fri\)
* the y\-axis are the periods from \(1\-8\)

I'm having immense trouble figuring out how to create the models in flask because some of data are related to each other so I feel like I should be using ForeignKeys and ManyToMany.

Many thanks to everyone for their guidance.

/r/flask
https://redd.it/8eppzj
Using Django Rest Framework, how can I give a serializer field a name that is not a valid Python variable name?

I'm trying to serialize the following type of inputs:
{
"1": [],
"2": [],
"3": [],
"4": [],
"5": [],
"6": [],
"7": [],
"8": [],
"9": [],
"10": []
}

But 1,2,... 10 are not valid Python variable names. Ideally I would have

from rest_framework import serializers

class MySerializer(serializers.Serializer):
1 = serializers.ListField(child=serializers.CharField)
2 = serializers.ListField(child=serializers.CharField)
3 = serializers.ListField(child=serializers.CharField)
4 = serializers.ListField(child=serializers.CharField)
5 = serializers.ListField(child=serializers.CharField)
6 = serializers.ListField(child=serializers.CharField)
7 = serializers.ListField(child=serializers.CharField)
8 = serializers.ListField(child=serializers.CharField)
9 = serializers.ListField(child=serializers.CharField)
10 = serializers.ListField(child=serializers.CharField)


I appreciate any help you can offer!

/r/django
https://redd.it/8enwrd
Open <p> tags created by django

Has anyone experienced a situation where django has created open \<p\> tags.

I'm passing in the following template tag and it's putting a \<p\> tag in front of the data, but no \</p\> at the end.

{{ article.body|linebreaks|truncatechars:110 }}

/r/django
https://redd.it/8eqfw9
Unexpected behavior of time.sleep() -- seems to add 30%-50% to shorter intervals

Exploring the use of [time.sleep()](https://docs.python.org/3.6/library/time.html#time.sleep) for sub-millisecond intervals, Mac OSX, Python 3.6. I was not surprised when the interval came out longer than requested, figuring there would be some overhead and setup time, but I was surprised to find that the excess was not a flat per-call overhead, but a percentage of the requested interval -- a high percentage that declines gradually and nearly disappears by 100ms. I wrote this little function to explore it:

import time
microsex = 1000 # initialize user input
million = 1000000.0 # convenient divisor
lupz = 50 # how many times to exercise sleep()

while True:
try:
s = input( "how long in microsex? " )
if s : # new value given
microsex = int(s)
except KeyboardInterrupt as K:
break # out of the loop on ^C
except EOFError as F :
break # also on ^D/^Z
except Exception as E:
print('tsk! ',str(E)) # error on int()?
continue # asking for input

float_delay = microsex/million # factored out of loop
start = time.perf_counter()
for j in range(lupz):
time.sleep(float_delay)
stop = time.perf_counter()

actual_microsex = int(million * (stop-start)/lupz)
diff = actual_microsex - microsex
diff_pct = int(100 * (actual_microsex/microsex))
print(
'actual {:d}, diff {:d}, %{:d}'.format(actual_microsex, diff, diff_pct)
)
print() # a newline at end of execution on ^C or ^D

And this is the kind of output I get,

how long in microsex? 250
actual 357, diff 107, %142
how long in microsex? 500
actual 702, diff 202, %140
how long in microsex? 1000
actual 1332, diff 332, %133
how long in microsex? 4000
actual 4988, diff 988, %124
how long in microsex? 100000
actual 102438, diff 2438, %102

Does it act this way in other environments? What do you suppose could account for it?

/r/Python
https://redd.it/8eqwsr
Django totourials - that is not yet another blog ?

Gone through some books and totourials for django, and it seems the hello world of django is a .... blog and often a blog that doesnt really look nice visually.

I understand why and that a blog is going around all mechanisms, but am really tired of blogs.

Anyone knows of totourials out there that implements something different plus having some focus on uptodate design too ? Even mixing things abit with js etc.




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