我在Ubuntu 12.04 LTS上设置一个Django服务器,我在使用正确版本的python安装mod-wsgi时遇到问题.我用python 3.3在本地构建了我的站点,Ubuntu 12.04与python 3.2捆绑在一起.我想我可以,但宁愿不只是使用3.2而不是3.3,所以我在3.2旁边安装了python 3.3.除了mod-wsgi之外,我为python 3.3安装了所有东西.
在运行python3.3的本地机器上安装libapache2-mod-wsgi-py3并sudo apt-get install libapache2-mod-wsgi-py3安装python3.3.但是在Ubuntu服务器上,运行相同的代码会为python3.2安装它,以便Web服务器运行3.2并且找不到django.
有没有办法禁用python3.2,或指向脚本为python 3.3安装它?
编辑:经过深入研究,python3.2没有与ubuntu捆绑在一起,而是与libapache2-mod-wsgi-py3一起安装
我正在为Django模板运行pyjade,因为我发现它更容易写入,但我试图将其转换为内置转换器的html.当我跑步时,pyjade -c django input.jade output.html我得到了错误pkg_resources.DistributionNotFound: six.但是,包six确实存在,我可以在python上导入它,当我运行pip install six --upgrade它时它说它已经是最新的了.
这是完整的追溯:
Traceback (most recent call last):
File "/usr/local/bin/pyjade", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in <module>
working_set.require(__requires__)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: six
Run Code Online (Sandbox Code Playgroud)
会导致此错误的原因是什么?
我有一个网站的初始响应时间很慢。该站点使用 Django 构建,并在 Ubuntu 上的 Apache2 服务器上运行。我一直在使用 Django 调试工具栏进行调试和优化。
向用户个人资料页面发出请求时,浏览器会“等待”约 800 毫秒并接收约 60 毫秒的初始请求。然而,Django Debug Toolbar 显示花在 CPU 上的时间和花在 SQL 查询上的时间加起来只有大约 425 毫秒。
Chrome 开发者工具:

Django 调试工具栏:

即使是对索引页的请求(它没有 SQL 查询,几乎没有处理——它只是用模板响应)显示大约 250 毫秒的等待时间。

我尝试暂时将 VM 升级到功能更强大的 CPU,但这并没有(明显地)改变这个指标。
这让我相信等待不是由于低效的代码或数据库延迟,而是由于某些 Apache 或 Ubuntu 设置。
在初始响应之后,其他加载页面资源(js 文件、图像等)的请求的等待时间更为合理,约为 20 毫秒。
什么可以解释相对较长的初始“等待”时间?我可以使用哪些工具来更好地了解时间的去向?
我有一个网站,用户可以将文件上传到子目录.我正在过滤上传检查潜在的恶意代码.我是安全方面的新手,所以这看起来像是保护上传到服务器的最佳做法吗?如果没有,或者我错过了什么,你能指出我正确的方向吗?
//arrays with acceptable file extensions/types -- default validations set to false
$acceptable_ext = array('jpg', 'JPG', 'jpeg', 'JPEG', 'gif', 'GIF', 'png', 'PNG');
$acceptable_type = array('image/jpeg', 'image/gif', 'image/png');
$validated_ext = 0;
$validated_type = 0;
//validate file extension and type
if($_FILES && $_FILES['file']['name']) {
$file_info = pathinfo($_FILES['file']['name']);
//validate extension
for ($x=0; $x < count($acceptable_ext); $x++) {
if($file_info['extension'] == $acceptable_ext[$x]) {
$validated_ext = 1;
}
}
//validate type
for ($x=0; $x < count($acceptable_type); $x++) {
if($file_info['type'] == $acceptable_type[$x]) {
$validated_type = 1;
} …Run Code Online (Sandbox Code Playgroud) 我有一个充满图像的数据库,我想吐出并显示两个随机图像.这段代码做得很好,但我不相信这是最好的方法,特别是如果数据库最终会有很多行.我已经研究过使用MySQL的rand()函数并将其限制为两个结果,但是从我读过的内容来看,rand()在大型数据库上相对较慢.另一个问题是在双数据库查询中.是否有更好的方法可以通过img_id选择两个随机行?
img_id是一个auto_incremented行,但不能假设是连续的.
//get all image ids
$query = $conn->prepare('SELECT img_id FROM images');
$query->execute();
$result = $query->fetchAll();
//create an array in which to put all the ids
$list_imgs = array();
//put the ids into the array to search over
for ($x=0; $x < count($result); $x++) {
array_push($list_imgs, $result[$x]['img_id']);
}
//output two random images
for ($x=0; $x < 2; $x++) {
//create random index for search
$rand = array_rand($list_imgs);
//query to select one image
$query = $conn->prepare('SELECT title, file_loc FROM images WHERE …Run Code Online (Sandbox Code Playgroud) 我正在使用谷歌地图制作一个地图,可以加载存储在数据库中的lat/lng数据的标记.我希望有三个不同的"层",用户可以通过单击按钮加载.单击该按钮时,将在服务器上执行php函数,从数据库中的信息创建xml文件.然后调用AJAX函数来拉取此xml数据,然后使用该数据创建地图标记.而不是为每个'层'分别拥有单独的PHP函数(除了带有SQL查询的行之外它们都是一样的),有没有办法将变量从AJAX中的javascript传递给PHP?
我有一个允许用户上传图像的网站。要检查用户上传的文件的 MIME 类型,我使用以下使用python-magic 的脚本
import magic
mime = magic.Magic(mime=True)
if mime.from_file(request.FILES['media-pic']) not in ['image/jpeg', 'image/pjpeg', 'image/png', 'image/gif']:
# don't allow the file to be uploaded
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试上传文件时,出现错误coercing to Unicode: need string or buffer, TemporaryUploadedFile found。我认为这行不通,但我尝试了一下,request.FILES['media-pic'].name却出现了File does not exist错误。
在将文件保存到服务器之前如何检查文件的 MIME 类型?
我完全不知道为什么这个简单的jQuery脚本无法正常工作.我从字面上复制并粘贴了我的另一个项目(代码在其中工作)的代码,并且只是更改了类标记.
<html>
<head>
<title>test page</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.click_item').click(
function() {
$(this).animate({background: '#ffffff'}, 200);
},
function() {
$(this).animate({background: '#d0d0d0'}, 200);
}
);
})
</script>
<style type="text/css">
#one {
height: 300px;
width: 1000px;
background-color: #a0a0a0;
}
.click_item {
width: 100px;
height: 30px;
margin: 0px auto;
margin-bottom: 10px;
background: #d0d0d0;
-moz-transition: background linear;
-webkit-transition: background linear;
}
</style>
</head>
<body>
<div id="one">
<div id="map_options_box">
<div id="kml1" class="click_item">item 1</div>
<div id="kml2" class="click_item">item 2</div>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我也尝试使用#kml1和#kml2 ID标签而不是类和'this'标签,以及用悬停和切换替换click功能,仍然无效.我也没有在控制台中收到任何错误.
有没有办法在模板中声明变量?我正在将单选按钮,复选框和文本输入的用户值推送到模板,希望将其先前的选择设置为已选中/填写.在此示例中,他们先前保存的选择作为数字0存储在数据库中2.这会抛出错误'空变量标签'.这是否可以在没有pyjade的标准Django模板中进行?
div
- var check = 'checked' if profile_info.selection == 0 else 'unchecked'
input(type="radio", name="lop", value="0", id="lop1", {{ check }})
div
- var check = 'checked' if profile_info.selection == 1 else 'unchecked'
input(type="radio", name="lop", value="1", id="lop2", {{ check }})
div
- var check = 'checked' if profile_info.selection == 2 else 'unchecked'
input(type="radio", name="lop", value="2", id="lop3", {{ check }})
Run Code Online (Sandbox Code Playgroud) 我有一个页面,用户可以搜索其他用户.使用AJAX调用搜索,并使用JSON返回结果,代码如下:
return HttpResponse(json.dumps({'users': list(users.values('first_name', 'last_name', 'gender', 'zip_code__city', 'zip_code__state')) }))
Run Code Online (Sandbox Code Playgroud)
我将用户生日存储在模型中birthday = models.DateTimeField().我想用结果回到生日那一年,但我遇到了麻烦.返回整个日期将起作用,我可以随后解析一年.
当我尝试将'birthday'添加到参数中时values,我得到一个错误,它不是JSON可序列化的.我也尝试了'birthday__year',但是这回复了一个错误,就是没有'year'这样的东西.
如何将DateTimeField放入列表中?
django ×5
php ×3
pyjade ×2
python ×2
ajax ×1
apache ×1
file-upload ×1
google-maps ×1
javascript ×1
jquery ×1
mod-wsgi ×1
mysql ×1
pug ×1
security ×1
ubuntu ×1
ubuntu-12.04 ×1