小编0le*_*leg的帖子

Python:运行SimpleHTTPServer并在脚本中向它发出请求

我想编写Python脚本,它将:

  1. 在某个端口上启动SimpleHTTPServer
  2. 向服务器发出请求并通过POST发送一些数据
  3. 在交互模式下通过shell运行脚本并与之交互

现在代码看起来像这样:

import SimpleHTTPServer
import SocketServer
import urllib
import urllib2

# Variables
URL = 'localhost:8000'
PORT = 8000

# Setup simple sever
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()

# Getting HTML from the target page
values = {
    'name': 'Thomas Anderson',
    'location': 'unknown'
}
data = urlilib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
html = response.read()
Run Code Online (Sandbox Code Playgroud)

问题是,一旦我运行我的脚本

python -i foo.py
Run Code Online (Sandbox Code Playgroud)

它打印serving at port 8000然后冻结.我敢打赌这对于这里的Python专家来说是微不足道的,但是我们将不胜感激.

python simplehttpserver python-2.7 server

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

Django REST仅限列表(无详细信息)ViewSet

有路由器:

router.register('users', UsersViewSet, base_name='users')
Run Code Online (Sandbox Code Playgroud)

和一个ViewSet:

class UserViewSet(viewsets.ReadOnlyModelViewSet):
    def get_queryset(self):
        return self.get_object_list()

    def get_object(self):
        for input in self.get_object_list():
            if input.id == self.kwargs['pk']:
                self.check_object_permissions(self.request, input)
                return input

        raise MyCustomNotFound()
Run Code Online (Sandbox Code Playgroud)

当我转到"/ rest/users /"时,它会显示用户列表.当我去"rest/users/1"时 - 它会显示某些用户的详细信息.

现在我想创建一个/ employees只读资源,它扩展了User,但只显示了list(键入类似"/ employees/1"的内容显示了Django 404).

解决方案:

1)覆盖get_object()并返回Http404 - 不起作用它显示带有数据而不是404页面的REST页面.

2)用在描述什么http://www.django-rest-framework.org/api-guide/viewsets/#readonlymodelviewset - user_list = UserViewSet.as_view({'get': 'list'})在路由器文件-不工作.

python django rest python-2.7

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

Android 的 ViewModel 和 MVVM

有一种设计模式叫做MVVM(Model-View-View Model),其中一个View Model作为一个View的抽象。视图模型应该向视图公开数据流并与模型的数据进行交互。

但是,Android 框架中有一个ViewModel类。


问题: Android 的ViewModel与 MVVM 模式中的 View Model 有关系吗?

android mvvm

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

生产中的Angular SSR“无法查找视图”(Ubuntu,Nginx)

跟进有关使用Express服务器设置SSR的官方Angular教程:https : //angular.io/guide/universal#configure-for-universal

本教程将设置如下路径:

...
const DIST_FOLDER = join(process.cwd(), 'dist');
...
app.set('views', join(DIST_FOLDER, 'browser'));
Run Code Online (Sandbox Code Playgroud)

这在本地服务器上效果很好。

但是,一旦部署在服务器上(由Nginx提供支持),就会出现错误:

错误:无法在ServerResponse.render(/ var / proj_name /)的Function.render(/var/proj_name/server.js:44670:17)的视图目录“ / home / user_name / dist / browser”中查找视图“索引”在Layer.handle的/var/proj_name/server.js:121:9处的server.js:53701:7)[在下一个(/ var / proj_name)处[作为handle_request](/var/proj_name/server.js:46582:5) /server.js:46330:13)位于Route.dispatch(/var/proj_name/server.js:46305:3)位于Layer.handle [作为handle_request](/var/proj_name/server.js:46582:5)位于/ param的/var/proj_name/server.js:45805:22(/var/proj_name/server.js:45878:14)at param(/var/proj_name/server.js:45889:14)

如何正确处理此问题,以便该应用程序既可以在本地(用于开发)又可以在生产服务器上正常运行?

编辑:

还尝试使用__dirname代替:

app.get(' ',express.static(join(__ dirname,'browser')));

但这在本地和生产服务器上均失败:

错误:无法在视图目录“ /浏览器”中查找视图“索引”

编辑2:

我已经设法通过将browser文件夹移到来完成这项工作~/dist/browser。但我不希望该应用程序以这种方式工作。

看起来失败的代码在server.ts中

// All regular routes use the Universal engine
app.get('*', (req, res) => {
  res.render('index', { req });
});
Run Code Online (Sandbox Code Playgroud)

在本地运行时,const DIST_FOLDER = …

nginx express angular-universal ssr angular

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

所需属性的规范授权值

我正在处理 Django/Dojo 项目。突然间我无法修改 HTML 文件。当我尝试编辑它时,我的浏览器显示此消息:

This page contains the following errors:
error on line 11 at column 79: Specification mandate value for attribute required
Below is a rendering of the page up to the first error.
Run Code Online (Sandbox Code Playgroud)

导致问题的行是:

<input data-dojo-type="dijit/form/ValidationTextBox">
Run Code Online (Sandbox Code Playgroud)

我不明白是什么导致了这种情况。

这是 Dojo 的问题,还是 Dreamweaver 或 Google Chrome 的问题?

javascript django dojo

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

Django User.check_password不会通过密码检查

尝试编写一个单元测试,检查用户是否输入了正确的密码.

使用Django的本机身份验证功能user.check_password.

问题是由于某种原因,check_password不接受user对象自己的密码.例如,这会引发错误:

assert user.check_password(user.password), "Password doesn't match"
Run Code Online (Sandbox Code Playgroud)

user.password 返回MD5 unicode字符串.

有谁知道为什么这不通过支票以及检查如何通过?

python passwords django python-unittest

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

基于条件的Python点语法函数

在python中是否可以根据条件调用dot-syntax-function.转向的简单示例:

if condition:
  foo().bar().baz()
  lots_of_code()
else:
  foo().baz()
  lots_of_code()

def lots_of_code():
  # lots of code
Run Code Online (Sandbox Code Playgroud)

成:

foo().(if condition: bar()).baz()
# lots of code only once
Run Code Online (Sandbox Code Playgroud)

python

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

选择除第一个子元素之外的元素之后

我想编译下一个LESS规则: - 当前元素之后的每个元素,除了第一个子元素

它应该看起来像这样:

(& ~ *):not(:first-child) {
  margin-left: 5px;
}
Run Code Online (Sandbox Code Playgroud)

或这个:

& ~ *:not(:first-child) {
  margin-left: 5px;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是两个都不起作用.

css css-selectors less

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

Django:仅适用于GenericIPAddressField的IPv4

使用Django的GenericIPAddressField- https://docs.djangoproject.com/en/1.10/ref/models/fields/#genericipaddressfield为我的模型这样:

group_address = models.GenericIPAddressField()
Run Code Online (Sandbox Code Playgroud)

如果输入了无效值,则返回一条消息:

Enter a valid IPv4 or IPv6 address.
Run Code Online (Sandbox Code Playgroud)

现在在我的情况下,该字段只接受IPv4地址.我想从邮件中删除IPv6.

是否可以调整GenericIPAddressField为仅处理IPv4或覆盖错误消息?

python django

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

点和冒号的含义

点号是什么 .:

- .:/var/www/project:cached
Run Code Online (Sandbox Code Playgroud)

在这种情况下的意思是:

version: '3'
services:
  php:
    image: php:7.1-fpm
    ports:
      - 9000
    volumes:
      - .:/var/www/project:cached
Run Code Online (Sandbox Code Playgroud)

这是bash语法的一部分,还是Docker语法的一部分(两者均未找到任何信息)。

docker docker-compose

4
推荐指数
2
解决办法
1210
查看次数