我有一些测试代码(作为webapp的一部分),它使用urllib2来执行我通常通过浏览器执行的操作:
我在3台不同的机器上创建了4个独立的,干净的virtualenvs(带有--no-site-packages),所有机器都有不同版本的python,但是完全相同的包(通过pip requirements文件),代码只适用于两个我的本地开发机器(2.6.1和2.7.2)上的virtualenvs - 它不适用于我的任何一个生产VPS
在失败的情况下,我可以成功登录,移动到正确的页面但是当我提交表单时,远程服务器回复告诉我发生了错误 - 这是一个应用程序服务器错误页面('我们无法完成你的请求')而不是网络服务器错误.
在这个阶段我完全迷失了为什么这不起作用.我甚至'再次关闭它 - 因为我无法看到问题可能是什么.
我认为它必须与来自远程服务器不喜欢的VPS的最终POST有关,但我无法弄清楚它可能是什么.我觉得在URLlib的引擎下发生了一些导致远程服务器不喜欢回复的事情.
编辑 我在VPS上安装了与我工作的本地副本完全相同的Python版本(2.6.1),它不能远程工作,所以它必须与源自VPS的东西有关.这怎么会影响Http请求?是低级别的吗?
我已经创造了一个完美的皮肤探测器,但它可以探测到所有皮肤 将手与其他皮肤分开的可能选择是什么?
我不想使用haar标识符,所以请不要建议.
我的学生模型中有以下内容.我想跟踪给每个学生的每个点的日期.这个想法是这样我不仅可以看到每个学生有多少分,而且还可以看到每个学分的日期.在未来,我希望看到学生积分的趋势.我该怎么办呢?我应该在另一个班级使用外键吗?我是新手,所以感谢阅读.
class Student(models.Model):
CLASS_CHOICES = (
(u'Yoga','Yoga'),
(u'Spanish', 'Spanish'),
(u'French', 'French'),
(u'Dance', 'Dance'),
)
name = models.CharField(max_length=30)
points = models.IntegerField(max_length=4)
classname = models.CharField("Class Name",max_length=20, choices=CLASS_CHOICES)
Run Code Online (Sandbox Code Playgroud) 我无法弄清楚如何控制模型表单的字段验证。
这是我的表格模型:
class UserForm(ModelForm):
class Meta:
model = User
fields = ('email', 'password')
Run Code Online (Sandbox Code Playgroud)
以下是我在模板中呈现表单的方式:
<form method="post" action="">
{% csrf_token %}
{{ userform.as_p }}
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的观点:
def login_page(request):
if request.method == 'POST':
userform = UserForm(request.POST)
if userform.is_valid():
email = request.POST['email']
password = request.POST['password']
user = authenticate(username=email, password=password)
if user is not None:
login(request, user)
return redirect('/dashboard/')
else:
# How can I give the user feedback about authentication failute here. Right now it just reloads the form without …Run Code Online (Sandbox Code Playgroud) 目前我有使用django 1.3版在山狮OS上运行的python项目,现在我想将它升级到django 1.5.但是,当我把它,并尝试做python manage.py runserver我得到一个错误说
错误:在包含'manage.py'的目录中找不到文件'settings.py'.看来你已经定制了东西.您必须运行django-admin.py,并将其传递给您的设置模块.(如果文件settings.py确实存在,则会以某种方式导致ImportError.)
我意识到项目结构不同,有什么方法可以将1.3项目转换或升级到1.5项目?
是否可以在模型序列化器中包含静态字段?例如,我有一个模型:
class Location(models.Model):
long = models.FloatField(...)
lat = models.FloatField(...)
Run Code Online (Sandbox Code Playgroud)
和一个序列化器:
class LocationSerialiser(serializers.ModelSerializer):
class Meta:
model = Location
fields = ("id", "long", "lat")
Run Code Online (Sandbox Code Playgroud)
通过一个简单的操作,ListAPIView我可以看到我的所有位置:
{
'id': 1,
'long': ...,
'lat': ...,
},
...
Run Code Online (Sandbox Code Playgroud)
但是假设我想将静态的非模型字段添加到 json 响应中的所有对象中?就像是:
{
'id': 1,
'long': ...,
'lat': ...,
'display': True,
'icon': 'image/marker.png'
},
...
Run Code Online (Sandbox Code Playgroud)
如何将它们添加到序列化器中?我已经浏览了该fields模块(2.2.4),但我没有看到任何明确的方法来实现这一点。一切都需要一个source属性。
理想情况下我想做
class LocationSerialiser(serializers.ModelSerializer):
display = fields.BooleanField(value=True)
icon = fields.CharField(value="image/marker.png")
class Meta:
model = Location
fields = ("id", "long", "lat")
Run Code Online (Sandbox Code Playgroud)
编辑
@property我发现的一种方法是简单地在模型实例上放置额外的包装方法:
class Location(models.Model):
long …Run Code Online (Sandbox Code Playgroud) 所以,我有预约模特
class Appointment(models.Model):
user = models.ForeignKey(User)
date = models.DateField()
time = models.TimeField()
doctorName = models.CharField(max_length=50)`
Run Code Online (Sandbox Code Playgroud)
我想在该FullCalendar工具中实现这一点.我不知道怎么开始.任何帮助表示赞赏.谢谢.
我想在会话变量中保存有关用户首选项的信息.如果用户在注销时选择首选项然后再登录,我希望保留首选项而无需重新选择它.
Django会话在cookie中维护会话密钥以跟踪用户会话.我理解它的方式,当用户登录时,该密钥会被更改.
a)这是否意味着所有会话变量在登录时被删除或是否存在任何类型的逾越节
b)如果无法在登录中保存首选项,那么手动设置cookie是最佳方式吗?我想象一个场景:
更新
我设法通过在用户的配置文件对象中以及在cookie中保存首选项来获得此功能(这些首选项在任何方面都不敏感).当用户登录时,他们的配置文件设置优先.未登录时,将选择cookie首选项
我被要求用中断重写我的代码(完整说明).我们还没有真正涵盖课堂上的中断,我不确定如何使用它们或如何实现它们.这是我的代码,我写的不使用中断,基本上使键盘成为钢琴或可以播放一首为摩托罗拉68hc11写的歌曲(羊,chromsc,大厅):
PORTA EQU $1000 ;The speaker port
SPEAKER EQU PORTA
SPEAKERBIT EQU %00100000
SCSR EQU $6400 ; Serial communications status register
SCDR EQU $6401 ; Serial communcations data register
TDRE EQU %00000010 ; mask for TDRE flag in SCSR
RDRF EQU %00000001 ; mask for RDRF flag in SCSR
ORG $8000; Place data at 8000
LAMB FCB 'trerttttrrrrtuuutrerttttrrtre',$00
CHROMSC FCB 'q2we4r5ty7u8i9op-[=]',$00
HALL FCB 'qwertet5w5r2rqwertetiutetu',$00
KEYMAP FDB 'q', 220, 758 ; A ;key, frequency, and 1/4 second …Run Code Online (Sandbox Code Playgroud) 我有一个代表房子的模型:
class House(models.Model):
name = models.CharField(...)
long = models.FloatField(...)
lat = models.FloatField(...)
Run Code Online (Sandbox Code Playgroud)
和一个序列化器,以最基本的表示形式返回房屋列表:
class HouseSerializer(serializers.ModelSerializer):
class Meta:
model = House
fields = ('id', 'name')
Run Code Online (Sandbox Code Playgroud)
和观点
class HouseList(generics.ListAPIView):
queryset = House.objects.all()
serializer_class = HouseSerializer
Run Code Online (Sandbox Code Playgroud)
这很好用.我可以访问/api/house/,我看到一个json的房屋列表:
{
'id': 1,
'name': 'Big House'
},
{
'id': 1
'name': 'Small House',
}...
Run Code Online (Sandbox Code Playgroud)
现在我想创建第二个视图/资源/api/maps/markers/,返回我的房子作为格式的Google-Map-Friendly标记列表:
{
'id': 1,
'long': ...,
'lat': ...,
'houseInfo': {
'title': "Big House",
}
} ...
Run Code Online (Sandbox Code Playgroud)
我可以预见两种方法:
Response但是我没有采用任何方法,我明白如何处理它,哪种方法更可取?