我需要解析一个网站,但我得到一个错误403 Forbidden.这是一个代码:
url = 'http://worldagnetwork.com/'
result = requests.get(url)
print(result.content.decode())
Run Code Online (Sandbox Code Playgroud)
它的输出:
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
请说出问题所在.
在我的系统上,我有多次安装了几个模块.举个例子,numpy 1.6.1安装在标准路径中/usr/lib/python2.7/dist-packages,我有一个numpy 1.8.0安装的更新版本/local/python/lib/python2.7/site-packages/.
我不能简单地删除旧版本的原因是我没有权限在我的工作计算机上更改任何内容.但是我需要使用新的numpy版本.
我加入/local/python/lib/python2.7/site-packages/了我的PYTHONPATH.不幸的是,这没有用,因为/usr/lib/python2.7/dist-packages首先插入到路径中,因此numpy 1.6.1将被加载.这是一个例子:
>>> import os
>>> print os.environ['PYTHONPATH']
/local/python/lib/python2.7/site-packages
>>> import pprint
>>> import sys
>>> pprint.pprint(sys.path)
['',
'/local/python/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg',
'/local/python/lib/python2.7/site-packages/pyparsing-2.0.1-py2.7.egg',
'~/.local/lib/python2.7/site-packages/setuptools-3.4.4-py2.7.egg',
'~/.local/lib/python2.7/site-packages/mpldatacursor-0.5_dev-py2.7.egg',
'/usr/lib/python2.7/dist-packages',
'/local/python/lib/python2.7/site-packages',
'/usr/lib/python2.7',
...,
'~/.local/lib/python2.7/dist-packages',
...]
Run Code Online (Sandbox Code Playgroud)
所以,似乎导入订单是
PYTHONPATH~/.local/lib/python2.7/site-packages/*.egg)~/usr/lib/python2.7/dist-packages/)PYTHONPATH~/.local/lib/python2.7/site-packages/)我的问题是我需要在项目3和项目4之前放置项目5.以使我的代码正常工作.现在,如果我numpy 1.8.0从/local/*目录导入一个编译过的模块,并且这个模块导入numpy,它仍然会从/usr/*目录中取出numpy 并失败.
我通过在我的脚本中放置这样的东西来规避这个问题:
import sys
sys.path.insert(0, '/local/python/lib/python2.7/site-packages/')
Run Code Online (Sandbox Code Playgroud)
因此,我可以强制Python使用正确的导入顺序,但当然这不是一个解决方案,因为我必须在每个脚本中 …
什么时候异常处理比条件检查更可取?在很多情况下我可以选择使用其中一种.
例如,这是一个使用自定义异常的求和函数:
# module mylibrary
class WrongSummand(Exception):
pass
def sum_(a, b):
""" returns the sum of two summands of the same type """
if type(a) != type(b):
raise WrongSummand("given arguments are not of the same type")
return a + b
# module application using mylibrary
from mylibrary import sum_, WrongSummand
try:
print sum_("A", 5)
except WrongSummand:
print "wrong arguments"
Run Code Online (Sandbox Code Playgroud)
这是相同的功能,避免使用异常
# module mylibrary
def sum_(a, b):
""" returns the sum of two summands if they are both of the same …Run Code Online (Sandbox Code Playgroud) 我需要优化几个现有网站的加载速度.我遇到的一个问题是每页请求的数量.这些网站有7种或更多不同类型的页面,它们应该加载不同的css和javascripts集合,因为它们包含不同的小部件或功能.目前,每个小部件或功能都有自己的javascript文件.我打算将文件合并和缩小以减少请求.
homepage.js,listing.js,detail.js,jquery.js+ jquery.cookie.js+ common.js,list.js+ paging.js+ favorite.js,detail.js+ favorite.js,init.js去<head>,do.js去<body>.我正在考虑大型网站,即门户网站或社交网络.
(顺便说一句,有一些图书馆要求我无法控制,例如TinyMCE或谷歌地图).
我对Elastic Beanstalk很新,并且不太熟悉服务器管理,但我需要在Elastic Beanstalk上设置一个连接到外部RDS MySQL数据库的Django项目.
我创建了一个单独的RDS MySQL数据库,我可以在我的计算机上使用Sequel Pro连接到它,没有任何问题.然后我有我的Django项目,我试图把它放到Elastic Beanstalk,但遗憾的是没有运气.如果我从我的计算机运行本地Django服务器,该项目是可浏览的,并且可以访问Amazon RDS MySQL.但是,当我跑
eb deploy
Run Code Online (Sandbox Code Playgroud)
我明白了
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server
on 'myapp-staging.xxx.eu-west-1.rds.amazonaws.com' (110)")
(ElasticBeanstalk::ExternalInvocationError)
Run Code Online (Sandbox Code Playgroud)
如果我通过SSH登录EC2服务器
eb ssh
Run Code Online (Sandbox Code Playgroud)
然后检查打开的端口
netstat -lntu
Run Code Online (Sandbox Code Playgroud)
我没有看到MySQL的端口3306,所以我猜它被防火墙阻止了.
这是我尝试的权限:
然后我尝试重新部署,重启服务器甚至重建环境,但没有任何帮助.MySQL端口3306在Elastic Beanstalk创建的EC2实例中仍未打开.
我做错了什么或者缺少什么?
permissions amazon-web-services amazon-rds amazon-elastic-beanstalk
我有一个媒体类,如下
class helloAdmin(admin.ModelAdmin):
class Media:
js = ['choice.js']
admin.site.register(hello,helloAdmin)
Run Code Online (Sandbox Code Playgroud)
staticfiles应用程序STATIC_URL位于媒体路径之前。但我想MEDIA_URL,以预先考虑,而不是STATIC_URL和STATIC_URL不为空。如何才能做到这一点?
有两个众所周知的用于创建树结构的Django包:django-treebeard和django-mptt.最近Django CMS开始使用django-treebeard而不是django-mptt.Wagtail CMS也使用django-treebeard.
是什么让django-treebeard成为比django-mptt更优选的选择?
我需要实现facebook-connect到用户已经拥有内部帐户的网站.如果内部帐户不存在,则应从facebook凭据创建.此外,应该可以将现有帐户链接到Facebook帐户.技术实现对我来说很清楚,但我对一个实用,最佳且易于理解的用户活动工作流程更感兴趣.
1)我最初的想法是有一个登录表单,其中包含用户和密码字段以及两个按钮:"connect with facebook"和"login".如果按"登录",内部帐户通常会登录.如果按下"连接Facebook",用户连接到Facebook,然后根据用户和密码的状态,我可以检索内部用户并绑定它与Facebook用户,或创建一个新的内部用户并将其绑定到Facebook用户,或检索绑定到Facebook用户的内部用户.但是,我在工作流程中看到了一些问题.如果输入的用户和密码与绑定到Facebook帐户的用户和密码的内部用户不同,该怎么办?
我将尝试用伪代码来说明问题:
if "login" is pressed:
internal_user = authenticate(username, password)
if "connect to facebook" is pressed:
facebook_user = get_facebook_user()
if username and password are filled in:
internal_user = authenticate(username, password)
if facebook_user has no internal_user:
facebook_user.bind_internal_user(internal_user)
else:
# conflict! what to do with it?
# facebook_user.get_internal_user() != internal_user
else:
if facebook_user has internal_user:
internal_user = facebook_user.get_internal_user()
else:
internal_user = facebook_user.create_internal_user()
internal_user.login()
Run Code Online (Sandbox Code Playgroud)
此外,如果用户需要输入Facebook用户名和密码或网站的用户名和密码,用户可能会感到困惑.
2)另一种选择可能是登录表格,连接到Facebook,以及注册表格作为三个不同的选项,连接到Facebook将获得或创建一个内部帐户; 然后是一个单独的可选表单,用于登录用户绑定他们的Facebook帐户.但是,再次有可能留下来创建一个重复的内部帐户.
处理这个问题的最佳做法是什么?其他网站主要使用的是什么?
是否可以在 Odoo10 的看板视图中显示没有任何项目的组(列)?
我找到了一篇如何在 Odoo8 中执行此操作的文章,但那里描述的方法似乎不再有效。
我需要将不同的Django项目与Django CMS放在同一个域下,例如:
通常我对每个域/项目使用 virtualenv 和 mod_wsgi 。我将需要不同的数据库、媒体文件和 Django 版本。
此处不能选择将项目放在不同的子域下。
可以做吗?我应该如何设置服务器?有什么我应该知道的注意事项吗?
如果我在Heroku上托管一个小的Django网站并且我只使用一个dyno,那么它是否可以保存到该服务器上的媒体文件,或者我是否必须使用AWS S3存储来存储媒体文件?媒体存储的其他替代方案是什么?
什么时候finally在try..except块中使用有意义?只是在try..except这样做之后才列出语句吗?
两者有什么区别?
try:
result = 100 / 0
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
finally:
print("final statement")
Run Code Online (Sandbox Code Playgroud)
与
try:
result = 100 / 0
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
print("final statement")
Run Code Online (Sandbox Code Playgroud) 我想根据发送给它的 POST 数据来缓存一些视图。
装饰器会django.views.decorators.cache.cache_page自动执行此操作还是我需要以某种方式调整它?对于后一种情况,我该怎么办?
我正在尝试缓存 GraphQL POST 请求。
django ×5
python ×4
amazon-rds ×1
deployment ×1
django-admin ×1
django-cache ×1
django-cms ×1
django-mptt ×1
exception ×1
facebook ×1
graphql ×1
heroku ×1
javascript ×1
kanban ×1
minify ×1
module ×1
odoo-10 ×1
optimization ×1
permissions ×1
pythonpath ×1
sys.path ×1
try-finally ×1
usability ×1
versions ×1
virtualenv ×1