小编Aid*_*tis的帖子

Python请求.403禁止

我需要解析一个网站,但我得到一个错误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)

请说出问题所在.

python python-requests

43
推荐指数
2
解决办法
5万
查看次数

Python:从多个已安装的模块版本中选择一个

在我的系统上,我有多次安装了几个模块.举个例子,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)

所以,似乎导入订单是

  1. 当前目录
  2. 鸡蛋来自 PYTHONPATH
  3. 来自本地模块路径的鸡蛋(~/.local/lib/python2.7/site-packages/*.egg)
  4. 系统范围的模块路径(~/usr/lib/python2.7/dist-packages/)
  5. 来自的目录 PYTHONPATH
  6. 中间路径(为简洁起见省略)
  7. userbase目录(~/.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使用正确的导入顺序,但当然这不是一个解决方案,因为我必须在每个脚本中 …

python module versions pythonpath sys.path

26
推荐指数
1
解决办法
2万
查看次数

条件检查与异常处理

什么时候异常处理比条件检查更可取?在很多情况下我可以选择使用其中一种.

例如,这是一个使用自定义异常的求和函数:

# 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)

python error-handling exception conditional-statements

16
推荐指数
2
解决办法
2844
查看次数

优化javascript和css请求

我需要优化几个现有网站的加载速度.我遇到的一个问题是每页请求的数量.这些网站有7种或更多不同类型的页面,它们应该加载不同的css和javascripts集合,因为它们包含不同的小部件或功能.目前,每个小部件或功能都有自己的javascript文件.我打算文件合并和缩小以减少请求.

  1. 将每种类型页面上所需的所有javascripts组合并缩小为一个文件(并为css执行相同操作)是否是一个好习惯?例如
    • 主页只有一个homepage.js,
    • 列表页面刚刚listing.js,
    • 细节页面刚刚detail.js,
    • 等等
  2. 最好只组合那些总是一起使用的文件吗?例如
    • jquery.js+ jquery.cookie.js+ common.js,
    • list.js+ paging.js+ favorite.js,
    • detail.js+ favorite.js,
    • 等等
  3. 如果所有javascripts都有一个文件应该加载到头部,一个文件应该加载到主体末端的所有javascripts,例如
    • init.js<head>,do.js<body>.
  4. 如果用户具有特定权限,那么如果有一个用于常用功能的文件和一个用于管理功能的文件呢?
  5. 有没有什么策略如何在1.,2.,3和4之间取得平衡?
  6. 对于页面,建议的javascript和css请求数是多少?

我正在考虑大型网站,即门户网站或社交网络.

(顺便说一句,有一些图书馆要求我无法控制,例如TinyMCE或谷歌地图).

javascript optimization minify

9
推荐指数
1
解决办法
4328
查看次数

Elastic Beanstalk连接到外部RDS创建的EC2权限

我对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,所以我猜它被防火墙阻止了.

这是我尝试的权限:

  1. 我去了RDS仪表板 - >安全组并创建了myapp-mysql-security-group,EC2安全组连接类型指向Elastic Beanstalk EC2实例"awseb-e -..."使用的EC2安全组.
  2. 我去了EC2 - >安全组和"awseb-e -..."我设置了入口MySQL端口,源为0.0.0.0.0
  3. 我去了VPC Dashboard - > Security Groups并使用源端口0.0.0.0/0创建了带有MySQL端口入站规则的myapp-mysql-security-group.

然后我尝试重新部署,重启服务器甚至重建环境,但没有任何帮助.MySQL端口3306在Elastic Beanstalk创建的EC2实例中仍未打开.

我做错了什么或者缺少什么?

permissions amazon-web-services amazon-rds amazon-elastic-beanstalk

8
推荐指数
1
解决办法
832
查看次数

Django Admin:类媒体

我有一个媒体类,如下

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_URLSTATIC_URL不为空。如何才能做到这一点?

django django-admin

6
推荐指数
1
解决办法
4452
查看次数

django-treebeard比django-mptt有什么优势?

有两个众所周知的用于创建树结构的Django包:django-treebearddjango-mptt.最近Django CMS开始使用django-treebeard而不是django-mptt.Wagtail CMS也使用django-treebeard.

是什么让django-treebeard成为比django-mptt更优选的选择?

django django-treebeard django-mptt

5
推荐指数
2
解决办法
2091
查看次数

将网站用户帐户与Facebook帐户绑定的最佳工作流程

我需要实现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帐户.但是,再次有可能留下来创建一个重复的内部帐户.

处理这个问题的最佳做法是什么?其他网站主要使用的是什么?

usability user-interface facebook

4
推荐指数
1
解决办法
1457
查看次数

Odoo10 看板视图中的空组

是否可以在 Odoo10 的看板视图中显示没有任何项目的组(列)?

找到了一篇如何在 Odoo8 中执行此操作的文章,但那里描述的方法似乎不再有效。

kanban odoo-10

4
推荐指数
1
解决办法
4457
查看次数

是否可以在同一个域下托管多个 django 项目?

我需要将不同的Django项目与Django CMS放在同一个域下,例如:

  • example.com/2012/
  • example.com/2014/

通常我对每个域/项目使用 virtualenv 和 mod_wsgi 。我将需要不同的数据库、媒体文件和 Django 版本。

此处不能选择将项目放在不同的子域下。

可以做吗?我应该如何设置服务器?有什么我应该知道的注意事项吗?

deployment django virtualenv django-cms

2
推荐指数
1
解决办法
2293
查看次数

Heroku上的媒体文件

如果我在Heroku上托管一个小的Django网站并且我只使用一个dyno,那么它是否可以保存到该服务器上的媒体文件,或者我是否必须使用AWS S3存储来存储媒体文件?媒体存储的其他替代方案是什么?

django heroku

2
推荐指数
1
解决办法
2557
查看次数

在Python的try块中使用finally的实际示例可能是什么

什么时候finallytry..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)

python try-finally

1
推荐指数
1
解决办法
36
查看次数

POST 请求是否缓存在 Django 中?

我想根据发送给它的 POST 数据来缓存一些视图。

装饰器会django.views.decorators.cache.cache_page自动执行此操作还是我需要以某种方式调整它?对于后一种情况,我该怎么办?

我正在尝试缓存 GraphQL POST 请求。

django django-cache graphql

0
推荐指数
1
解决办法
833
查看次数