我希望Django模型有一个日期字段,其中年,月和日都是可选的.示例值可以是通用的,也可以2008是特定的May 10, 2008.是否可以定义一个DateField这样的行为?或者我最好将年/月/日定义为单独的整数,像这样?
model Book(models.Model):
publication_year = models.IntegerField(blank=True, null=True)
publication_month = models.IntegerField(blank=True, null=True)
publication_day = models.IntegerField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud) 假设一个Django站点位于生产服务器上/var/virtualenvs/sitename,其目录结构如下所示:
/var/virtualenvs/sitename/
logs/
access.log
error.log
...
media/
...
src/
app_1/
app_2/
django_project_name/
manage.py
django_project_name/
settings.py
urls.py
wsgi.py
static/
...
Run Code Online (Sandbox Code Playgroud)
在安全的生产环境中为这些文件分配所有权和权限的最佳方法是什么?
假设设置使用nginx作为反向代理,Gunicorn作为Django服务(虽然适用于其他工具的一般答案也会有所帮助).
我正在尝试INSERT使用MySQLdb从Python脚本在MySQL表上执行基本语句.我的表看起来像这样:
CREATE TABLE `testtable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`testfield` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)
从MySQL命令行运行此查询工作正常:
INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue');
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从Python脚本执行查询时,不会插入任何行.这是我的代码:
conn = MySQLdb.connect(host=db_host, port=db_port, user=db_user, passwd=db_password, db=db_database)
cursor = conn.cursor ()
cursor.execute ("INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue')")
print "Number of rows inserted: %d" % cursor.rowcount
cursor.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这将打印"插入的行数:1." 我还可以确认此查询会增加ID字段,因为当我通过命令行添加另一行时,其ID的值与Python脚本成功插入其行的值相同.但是,运行SELECT查询不会返回脚本中的任何行.
知道出了什么问题吗?
我有一系列与特定用户相关联的对象,如下所示:
from django.db import models
from django.contrib.auth.models import User
from taggit.managers import TaggableManager
class LibraryObject(models.Model):
title = models.CharField(max_length=255)
owner = models.ForeignKey(User)
tags = TaggableManager()
class Meta:
abstract = True
class Book(LibraryObject):
summary = models.TextField()
class JournalArticle(LibraryObject):
excerpt = models.TextField()
# ...etc.
Run Code Online (Sandbox Code Playgroud)
我知道我可以像这样检索所有标签:
>>> from taggit.models import Tag
>>> Tag.objects.all()
Run Code Online (Sandbox Code Playgroud)
但是,如何检索与特定用户关联的所有标记?我想象的东西Tag.objects.filter(owner=me),但当然不起作用.
作为参考,这是django-taggit文档.
我有几个用 Microsoft Word 生成的 PDF。我想要:
如果我在 HTML 中执行此操作,它将如下所示:
<!-- before: -->
This is the text to match.
<!-- after: -->
This is the text to <a href="http://www.match.com/" target="_blank">match</a>.
Run Code Online (Sandbox Code Playgroud)
如何对 PDF 执行此操作?
我更喜欢 Python,但我对其他选择持开放态度。
编辑:我无权访问原始 Word 文档。我需要自己操作 PDF。我正在寻找一种使用 Python PDF 库(或其他语言中的类似库)的技术。
编辑 2:我知道 PDF 的源代码不包含文字字符串。我想知道是否有一种方法可以执行以下操作:(1)提取文本,(2)查找匹配项,以及(3)对于每个匹配项,在原始 PDF 中的文本位置周围绘制一个可点击的框。我最接近的是 PyPDF2 的addLink(),但它在 PDF中添加了内部链接,而不是指向外部 URL 的链接。
假设我在Vim中编辑这一行JavaScript:
var opener = 'As Gregor Samsa awoke one morning from uneasy dreams he found himself transformed in his bed into a gigantic insect';
Run Code Online (Sandbox Code Playgroud)
如果我的光标是在G中Gregor,我该如何将它移动到t的insect?
我不是在谈论移动到结束行.我正在谈论移动到封装在单引号中的JavaScript 字符串的末尾.(我知道我可以用它/'h,但我想知道是否有一个更通用的命令 - 可能是这样的%.)
在我的一个模型中,我希望只有在另一个布尔模型字段为真时才需要外键对象.如何配置管理站点以这种方式运行?
我的models.py包含:
from django.db import models
class ThingOne(models.Model):
name = models.CharField(max_length=100)
class ThingTwo(models.Model):
name = models.CharField(max_length=100)
use_thingone = models.BooleanField()
thingone = models.ForeignKey(ThingOne, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
我的admin.py包含:
from myapp.models import ThingOne
from myapp.models import ThingTwo
from django.contrib import admin
admin.site.register(ThingOne)
admin.site.register(ThingTwo)
Run Code Online (Sandbox Code Playgroud)
thingone如果use_thingone是真的,我该如何调整它以产生一个必需的外键字段?
我想将超过 80 个字符的行拆分为与原始行具有相同缩进级别的多行。它应该只在空白字符处进行切割,以免单词被一分为二。所以这:
\begin{enumerate}
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sed tempus odio. Phasellus lobortis suscipit mattis. Nulla facilisi. In nisi turpis, tristique ut accumsan at, sagittis a orci. Ut nisl enim, eleifend quis fermentum commodo, fermentum a velit. Maecenas a augue nec leo fermentum auctor et ut turpis. Donec ultricies ligula sed mi suscipit sagittis.
\end{enumerate}
Run Code Online (Sandbox Code Playgroud)
...会变成这样:
\begin{enumerate}
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum
sed tempus odio. Phasellus lobortis suscipit mattis. …Run Code Online (Sandbox Code Playgroud) 我正在使用Amazon AWS上的WordPress部署配置.我在Ubuntu EC2实例上运行Apache上的WordPress.我正在使用W3 Total Cache进行缓存,并从S3存储桶提供用户上传的媒体文件.负载均衡器将流量分配到两个EC2实例,并通过自动扩展来处理重负载.
问题是用户上传的媒体文件存储在本地wp-content/uploads/,然后同步到S3存储桶.这意味着EC2实例之间的媒体文件不一致.
以下是我正在考虑的方法:
wp-content/uploads/单独的EBS卷.所有实例都将共享媒体文件.有明显的赢家吗?我还应该考虑其他方法吗?
python ×5
django ×4
vim ×3
text ×2
amazon-ec2 ×1
amazon-s3 ×1
autoscaling ×1
caching ×1
date ×1
datetime ×1
deployment ×1
django-admin ×1
foreign-keys ×1
indentation ×1
linux ×1
macros ×1
macvim ×1
mysql ×1
pdf ×1
permissions ×1
regex ×1
security ×1
sql ×1
string ×1
tags ×1
vi ×1
wordpress ×1