我正在使用Requests库并访问网站以使用以下代码从中收集数据:
r = requests.get(url)
Run Code Online (Sandbox Code Playgroud)
我想在输入不正确的URL并返回404错误时添加错误测试.如果我故意输入无效的网址,当我这样做时:
print r
Run Code Online (Sandbox Code Playgroud)
我明白了:
<Response [404]>
Run Code Online (Sandbox Code Playgroud)
编辑:
我想知道如何测试.对象类型仍然相同.当我做r.content或者r.text,我只是得到一个自定义的404页面的HTML.
我在Windows 7 64位.我有一个csv文件'data.csv'.我想通过python脚本将数据导入postgresql表'temp_unicommerce_status'.
我的剧本是:
import psycopg2
conn = psycopg2.connect("host='localhost' port='5432' dbname='Ekodev' user='bn_openerp' password='fa05844d'")
cur = conn.cursor()
cur.execute("""truncate table "meta".temp_unicommerce_status;""")
cur.execute("""Copy temp_unicommerce_status from 'C:\Users\n\Desktop\data.csv';""")
conn.commit()
conn.close()
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误
Traceback (most recent call last):
File "C:\Users\n\Documents\NetBeansProjects\Unicommerce_Status_Update\src\unicommerce_status_update.py", line 5, in <module>
cur.execute("""Copy temp_unicommerce_status from 'C:\\Users\\n\\Desktop\\data.csv';""")
psycopg2.ProgrammingError: must be superuser to COPY to or from a file
HINT: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.
Run Code Online (Sandbox Code Playgroud) 我有两个Django的应用,其在端口同一台服务器上80和9002.即urls www.abc.com和www.abc.com:9002
两者共享相同的数据库postgresql进行身份验证.我想在它们之间共享会话数据的共享,以便登录到一个应用程序的用户可以在另一个应用程序中自动登录.
我读了这些答案:多个Django应用程序,共享身份验证以及如何在同一个子域上获取不同的Django应用程序以共享会话cookie?
并在我的django应用程序中执行此操作:
添加以下行:
SESSION_ENGINE ='django.contrib.sessions.backends.signed_cookies'SESSION_COOKIE_NAME
='abc'SESSION_COOKIE_DOMAIN ='.abc.com'
但我仍然无法达到目的.如何在两个django应用程序之间共享会话cookie,以便我可以进行共享身份验证?
我在看django-otp模块,想在我的项目中实现它.但我面临几个问题.
1)根据文档(它们在文档已经给出的方法)中,有三个级别的身份验证的:Anonymous,Authenticated和Authenticated + Verified.如果用户已经通过django的身份验证系统进行了身份验证,那么他将被要求进行otp验证(双向身份验证).
现在我想跳过它并通过otp验证/验证用户.而不是登录提示用户将输入电话号码并将收到otp进行验证.(我想绕过django的身份验证).
2)我还想在选定的页面上使用otp_required.即我将在我的网站上拥有匿名用户和经过验证的用户.
3)我找不到任何关于实施的例子.
我的问题是如何在我当前的场景中实现它.
编辑:Settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home',
'django_otp',
'django_otp.plugins.otp_totp',
'django_otp.plugins.otp_static',
]
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_otp.middleware.OTPMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
Run Code Online (Sandbox Code Playgroud) 我的html模板中有2个链接.第一个链接只传递1个参数到URL,第二个链接传递2个参数.像这样:
<a href="/products/{{categ_name}}">{{categ_name}}</a>
<a href="/products/{{categ_name}}/{{subcateg_name}}">{{subcateg_name}}</a>
Run Code Online (Sandbox Code Playgroud)
现在当我点击带有1个参数的链接时,它工作正常.我在django视图中获取参数值.
但是当我点击带有两个参数的链接时,我只得到第一个参数.我在第二个参数的值中得到None.
我的urls.py:
urlpatterns = patterns('',
url(r'^products/(?P<categ_name>\w+)/', views.products, name='products_category'),
url(r'^products/(?P<categ_name>\w+)/(?P<subcateg_name>\w+)/', views.products, name='products_subcategory'),
url(r'^logout/',views.logoutView, name='logout'),)
Run Code Online (Sandbox Code Playgroud)
我的views.py:
def products(request, categ_name=None, subcateg_name=None):
print categ_name, subcateg_name
...
Run Code Online (Sandbox Code Playgroud)
如何获得第二参数的值?
我有重定向到 URL 的功能。
return redirect('/orders')
Run Code Online (Sandbox Code Playgroud)
URL/orders有一些传递给它的上下文数据。我想传递一些额外的数据以及来自 URL 函数的数据,如下所示:
return redirect('/orders', {'message':'some_message'})
Run Code Online (Sandbox Code Playgroud)
我根据文档尝试这样做:
return redirect('/orders', message='some_message')
Run Code Online (Sandbox Code Playgroud)
但它没有将任何数据传递回 html。那么如何通过重定向传递数据呢?
我正在学习芹菜,我创建了一个项目来测试我的配置.我安装celery==4.0.0并django-celery-beat==1.0.1根据最新文档.
在drf_project(带有manage.py的主项目目录)/drf_project/celery.py中
from __future__ import absolute_import, unicode_literals
from celery import Celery
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'drf_project.settings')
app = Celery('drf_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
Run Code Online (Sandbox Code Playgroud)
在drf_project/drf_project/settings.py中
INSTALLED_APPS += ('django_celery_beat',)
CELERYBEAT_SCHEDULE = {
"test_1": {
"task": "tasks.print_test",
"schedule": timedelta(seconds=2),
},
}
Run Code Online (Sandbox Code Playgroud)
在drf_project/drf_project/init .py中
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']
Run Code Online (Sandbox Code Playgroud)
在我的user_management应用程序(drf_project/user_mangement /)中,我添加了tasks.py
from celery import Celery
from time import strftime
app = Celery()
@app.task
def print_test():
print strftime('%Y-%m-%d %H:%M:%S')
with open('abc.txt', 'ab+') as …Run Code Online (Sandbox Code Playgroud) 我正在尝试渲染一个在加载时自动显示打印对话框的页面。我想使用硒跳过它。我在互联网上搜索,但找不到任何合适的示例,因为大多数示例处理 javascript 警报而不是 Windows 警报。
我还安装了 python,robotframework因为很多人建议它,但也找不到任何示例。
我的问题是如何在Python中使用selenium和robotframework来消除Windows警报?
注意:这个问题是我之前问题的延续。python selenium 不更新弹出窗口 url
我已经在具有nginx和uwsgi的服务器上部署了django Web应用程序。我可以使用ip地址完美访问该网站。
我购买了一个域名abc.example.com,并将其指向我的IP地址。现在,当我转到域名时,它将加载一个空白页面并在浏览器控制台中引发错误:
在Chrome中:
Refused to display 'ip address' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
Run Code Online (Sandbox Code Playgroud)
在Mozilla中:
Load denied by X-Frame-Options: 'ip address' does not permit cross-origin framing.
Run Code Online (Sandbox Code Playgroud)
关键是我在整个应用程序中没有任何iframe。
这是什么错误,我该如何解决?
当我使用ip地址转到应用程序时,它可以像预期的那样完美运行。那么域的问题是什么?我仔细检查了Godaddy的dns区域中的设置,但什么都没找到。
我试图在Postgresql 9.5中像这样在我的表的列上创建一个触发器:
CREATE OR REPLACE FUNCTION app.combo_min_stock()
RETURNS TRIGGER AS
$combo_sync$
DECLARE combo_product_ids INTEGER[] := array(SELECT combo_product_map.combo_productid FROM app.combo_product_map WHERE combo_product_map.productid=NEW.productid);
DECLARE comboid INTEGER;
BEGIN
-- UPDATE MINIMUM STOCK FOR COMBO SKUS --
FOREACH comboid IN ARRAY combo_product_ids
LOOP
UPDATE app.inventory SET
good_stock = combo_data.min_good_stock,
bad_stock = combo_data.min_bad_stock,
to_be_updated = true
FROM
(SELECT
product.productid,
MIN(inventory.good_stock) as min_good_stock,
MIN(inventory.bad_stock) as min_bad_stock
FROM
app.product,
app.inventory,
app.combo_product_map
WHERE
product.is_combo=true AND
product.productid=comboid AND
product.productid=combo_product_map.combo_productid AND
combo_product_map.productid=inventory.productid
GROUP BY
product.productid) AS combo_data
WHERE
combo_data.productid=inventory.productid;
END …Run Code Online (Sandbox Code Playgroud)