小编Shi*_*dla的帖子

如何将类,id,占位符属性添加到django模型表单中的字段

我有一个像下面的django模型

models.py

class Product(models.Model):
    name = models.CharField(max_length = 300)
    description = models.TextField(max_length = 2000)
    created = models.DateTimeField(auto_now_add = True)
    updated = models.DateTimeField(auto_now = True)

    def __unicode__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

forms.py

class ProductForm(ModelForm):
    class Meta:
        model = Product
        exclude = ('updated', 'created')
Run Code Online (Sandbox Code Playgroud)

product_form.py(只是一个例子)

 <form enctype="multipart/form-data" action="{% url 'add_a_product' %}" method="post">
         <div id="name">
           {{form.name}}
         </div> 
         <div id="description">
           {{form.description}}
         </div> 
   </form> 
Run Code Online (Sandbox Code Playgroud)

其实我想显示/渲染html输出,如下所示

<input id="common_id_for_inputfields" type="text" placeholder="Name" class="input-calss_name" name="Name">

<input id="common_id_for_inputfields" type="text" placeholder="Description" class="input-calss_name" name="description">
Run Code Online (Sandbox Code Playgroud)

那么最后如何将属性(id,占位符,类)添加到上面代码中的模型表单字段?

forms django attributes django-forms form-fields

35
推荐指数
5
解决办法
4万
查看次数

如何在python中移回一个文件夹

实际上需要走一些路径并执行一些命令,下面是代码

代码:

import os
present_working_directory = '/home/Desktop/folder' 
Run Code Online (Sandbox Code Playgroud)

目前我在 folder

if some_condition == true :
    change_path = "nodes/hellofolder"
    os.chdir(change_path)
    print os.getcwd()
if another_condition  == true:
    change_another_path = "nodes" 
    os.chdir(change_another_path) 
    print os.getcwd()

**Result**:
'/home/Desktop/folder/nodes/hellofolder'
python: [Errno 1] No such file or directory
Run Code Online (Sandbox Code Playgroud)

实际上这里发生的事情是我第一次使用os.chdir()目录时已更改为

'/home/Desktop/folder/nodes/hellofolder',

但对于第二个我需要通过移动到一个文件夹来运行一个文件

'/home/Desktop/folder/nodes'
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以让我如何在python中移动一个文件夹

python operating-system

25
推荐指数
4
解决办法
6万
查看次数

mysql创建表查询时行大小太大错误

我正在尝试使用以下查询创建一个表

Create Table PerformaceReport
(
campaignID int,
keywordID bigint,
keyword varchar(8000),
avgPosition decimal(18,6),
cost int,
clicks int,
 conv1PerClick int, 
 impressions int,
  day datetime,
  currency varchar(8000),
  account varchar(8000),
   timeZone varchar(8000),
    adGroup varchar(8000),
    adGroupState varchar(8000),
     approvalStatus varchar(8000),
     lowestPosition varchar(8000),
     campaign varchar(8000),
      campaignState varchar(8000),
       convManyPerClick int,
       totalConvValue decimal(18,6),
        maxCPCSource varchar(8000),
         clientName varchar(8000),
          destinationURL varchar(8000),
           device varchar(8000),
           firstPageCPC int,
            isNegative bit,
             matchType varchar(8000),
              maxCPC varchar(8000),
               maxCPM varchar(8000),
               highestPosition varchar(8000),
               qualityScore int,
               keywordState varchar(8000),
               viewThroughConv int)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

#1118 - Row size too large. The maximum …
Run Code Online (Sandbox Code Playgroud)

mysql

23
推荐指数
5
解决办法
6万
查看次数

使用django-allauth登录信号将用户重定向到另一个URL

我使用Django-allauth作为我的登录/注册相关的东西,所以当用户注册(第一次)进入我的网站时,我/thanks/通过在settings.py文件中定义下面的设置将他重定向到页面

LOGIN_REDIRECT_URL ='/ thanks /'

但是当用户下次尝试登录时(如果已经注册),我应该将他重定向到'/dashboard/'URL

所以试着改变它,Django-allauth signals如下所示,根本不起作用

@receiver(allauth.account.signals.user_logged_in)
def registered_user_login(sender, **kwargs):
    instance = User.objects.get_by_natural_key(kwargs['user'])
    print instance.last_login==instance.date_joined,"??????????????????????????????"
    if not instance.last_login==instance.date_joined:
        return HttpResponseRedirect(reverse('dashboard'))
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以让我知道如何重定向用户/dashboard/进行正常登录,我在上面的信号代码中做错了什么?

编辑

根据以下答案进行一些修改后pennersr,我的AccountAdapter课程如下所示

from allauth.account.adapter import DefaultAccountAdapter
# from django.contrib.auth.models import User

class AccountAdapter(DefaultAccountAdapter):

  def get_login_redirect_url(self, request):
    if request.user.last_login == request.user.date_joined:
        return '/registration/success/'
    else:
        return '/dashboard/'
Run Code Online (Sandbox Code Playgroud)

但是,它仍在重定向用户/dashboard/,我的逻辑在确定用户第一次出错时?

django django-signals django-allauth

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

使用保存在本地系统中的html来抓取文件

例如,我有一个网站"www.example.com" 其实我想通过保存到本地系统刮掉这个网站的HTML.所以为了测试我在桌面上保存了那个页面example.html

现在我已经为此编写了蜘蛛代码,如下所示

class ExampleSpider(BaseSpider):
   name = "example"
   start_urls = ["example.html"]

   def parse(self, response):
       print response
       hxs = HtmlXPathSelector(response)
Run Code Online (Sandbox Code Playgroud)

但是当我运行上面的代码时,我收到如下错误

ValueError: Missing scheme in request url: example.html
Run Code Online (Sandbox Code Playgroud)

最后我的意思是刮掉example.htmlwww.example.com本地系统中保存的html代码组成的文件

任何人都可以建议我如何在start_urls中分配该example.html文件

提前致谢

python scrapy

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

在Scrapy中将项目写入MySQL数据库

我是Scrapy的新手,我有蜘蛛代码

class Example_spider(BaseSpider):
   name = "example"
   allowed_domains = ["www.example.com"]

   def start_requests(self):
       yield self.make_requests_from_url("http://www.example.com/bookstore/new")

   def parse(self, response):
       hxs = HtmlXPathSelector(response)
       urls = hxs.select('//div[@class="bookListingBookTitle"]/a/@href').extract()
       for i in urls:
           yield Request(urljoin("http://www.example.com/", i[1:]), callback=self.parse_url)

   def parse_url(self, response):
           hxs = HtmlXPathSelector(response)
           main =   hxs.select('//div[@id="bookshelf-bg"]')
           items = []
           for i in main:
           item = Exampleitem()
           item['book_name'] = i.select('div[@class="slickwrap full"]/div[@id="bookstore_detail"]/div[@class="book_listing clearfix"]/div[@class="bookstore_right"]/div[@class="title_and_byline"]/p[@class="book_title"]/text()')[0].extract()
           item['price'] = i.select('div[@id="book-sidebar-modules"]/div[@class="add_to_cart_wrapper slickshadow"]/div[@class="panes"]/div[@class="pane clearfix"]/div[@class="inner"]/div[@class="add_to_cart 0"]/form/div[@class="line-item"]/div[@class="line-item-price"]/text()').extract()
           items.append(item)
       return items
Run Code Online (Sandbox Code Playgroud)

管道代码是:

class examplePipeline(object):

    def __init__(self):               
        self.dbpool = adbapi.ConnectionPool('MySQLdb',
                db='blurb',
                user='root',
                passwd='redhat',
                cursorclass=MySQLdb.cursors.DictCursor,
                charset='utf8',
                use_unicode=True
            )
def process_item(self, …
Run Code Online (Sandbox Code Playgroud)

mysql pipeline web-crawler scrapy

20
推荐指数
1
解决办法
3万
查看次数

有没有办法在python中的列表推导中使用两个if条件

假设我有一个清单

my_list = ['91 9925479326','18002561245','All the best','good']
Run Code Online (Sandbox Code Playgroud)

现在我想忽略在列表中的字符串开始9118 像下面

result = []
for i in my_list:
   if not '91' in i:
      if not '18' in i:
         result.append(i) 
Run Code Online (Sandbox Code Playgroud)

所以在这里我想通过列表推导来实现这一点.

无论如何,如果条件列表中的条件,写两个?

python list

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

如何在python中通过sftp连接后列出目录中的所有文件夹和文件

嗨我正在使用python并尝试连接到sftp并想从那里检索xml文件并需要放在我的本地系统中,下面是代码

import paramiko

sftpURL   =  'sftp.somewebsite.com'
sftpUser  =  'user_name'
sftpPass  =  'password'

ssh = paramiko.SSHClient()
# automatically add keys without requiring human intervention
ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy() )

ssh.connect(sftpURL, username=sftpUser, password=sftpPass)

ftp = ssh.open_sftp()
files = ftp.listdir()
print files
Run Code Online (Sandbox Code Playgroud)

这里连接已成功完成,现在我想查看所有文件夹和所有文件,并需要输入所需的文件夹以从那里检索xml文件.

最后我的目的是在连接到sftp服务器后查看所有文件夹和文件.在上面的代码中我使用了ftp.listdir()通过它获得输出,如下所示

['.bash_logout', '.bash_profile', '.bashrc', '.mozilla', 'testfile_248.xml']
Run Code Online (Sandbox Code Playgroud)

我想知道这些是否是唯一存在的文件?

我上面使用的命令也是查看文件夹的权利吗?

查看所有文件夹和文件的命令是什么

python ssh sftp paramiko

15
推荐指数
2
解决办法
3万
查看次数

django调试工具栏中没有名为settings_vars的模块错误

我想django-degub-toolbar在我的django app中使用,下面是我的settigns

DEBUG_TOOLBAR_PANELS = (
    'debug_toolbar.panels.version.VersionDebugPanel',
    'debug_toolbar.panels.timer.TimerDebugPanel',
    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
    'debug_toolbar.panels.headers.HeaderDebugPanel',
    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
    'debug_toolbar.panels.template.TemplateDebugPanel',
    'debug_toolbar.panels.sql.SQLDebugPanel',
    'debug_toolbar.panels.signals.SignalDebugPanel',
    'debug_toolbar.panels.logger.LoggingPanel',
)

MIDDLEWARE_CLASSES += [
'debug_toolbar.middleware.DebugToolbarMiddleware',
]

INSTALLED_APPS += [
 'debug_toolbar',
]
Run Code Online (Sandbox Code Playgroud)

当我试图运行服务器时,我遇到了错误

Validating models...

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x32c8f10>>
Traceback (most recent call last):
  File "/home/user/.virtualenvs/proj/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 92, in inner_run
    self.validate(display_num_errors=True)
  File "/home/user/.virtualenvs/proj/local/lib/python2.7/site-packages/django/core/management/base.py", line 280, in validate
    num_errors = get_validation_errors(s, app)
  File "/home/user/.virtualenvs/proj/local/lib/python2.7/site-packages/django/core/management/validation.py", line 35, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/home/user/.virtualenvs/proj/local/lib/python2.7/site-packages/django/db/models/loading.py", line …
Run Code Online (Sandbox Code Playgroud)

django django-debug-toolbar

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

如何从CLI中查找php中内置模块的版本号

基本上我是php新手,我刚刚在我的机器上安装了php.所以我们可以通过创建一个php文件并在其中编写下面的代码来了解php配置的全部信息

<?php 
  phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)

我通过浏览器打开它,可以看到所有的配置信息

但是有没有办法从linux终端知道php默认模块的版本(我正在使用fedora :))

所以我要问的是,是否有任何方法可以通过一些php命令从终端找到所有模块或单个模块的版本号?

例如,有一个命令php -me显示默认安装php时所有的php模块,如下所示

[PHP modules]
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
shmop
....
.....
Run Code Online (Sandbox Code Playgroud)

但同样地,我想从终端找到单个模块的版本号,我们怎样才能找到它?

php module version

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