我正在尝试在我的urls.py中写一个url正则表达式来获取一个json查询,它将采用这样的URL:
http://localhost:8000/structures/hydrants/3/json?address=100+Washington+Road,+Sacramento,+CA
并将其指向视图:
def hydrant_json(request, hydrant_address):
hydrant = Hydrant.objects.filter(address = hydrant_address)
data = [hydrant.json()]
return HttpResponse(json.dumps(data), content_type='application/json')
地址定义如下:
class Address(models.Model):
class Meta:
verbose_name_plural = "addresses"
street_num = models.IntegerField(default=0)
street = models.CharField(max_length=200)
city = models.CharField(max_length=200)
state = models.CharField(max_length=200)
def json(self):
fields = ('street_num', 'street', 'city', 'state')
return {
'street_num': str(self.street_num),
'street': str(self.street),
'city': str(self.city),
'state': str(self.state)
}
def __unicode__(self):
return str(self.street_num) + ' ' + self.street + ', ' + self.city + ', ' + self.state
和hydrant.json()工作,视图方面的一切都是花花公子。我只是希望正则表达式采用上面显示的格式的确切地址,适合查询URL。
谢谢!
答案 0 :(得分:0)
r'(?<address>^\d{1,5}\s[a-zA-z\s]+,\s[a-zA-z]+,\s[A-Z]{,2}$)'
这和它一样严格。
基本上它的作用是:
确保以数字
确保该号码的长度最多为5位数(不知道可以使用多长时间,如果需要,请调整{1,5}
确保逗号,空格和街道名称跟随
确保逗号,空格和城市名称如下
确保逗号,状态跟随,并以状态