所以我一直在网上寻找一个Python库,它会返回你确切的当前位置,并发现没有任何可用的东西,除非你通过你的IP地址找到你的位置的廉价和不准确的方法,我已经在我的移动热点上进行了测试,并且距离100英里.
我有另一个解决方案,但它需要将JavaScript与Python混合,我需要帮助,我只在Python/Django上工作了几天.
由于Python是服务器端,我无法找到任何可以精确定位您的精确经度和纬度的库.但是使用客户端JavaScript,这非常简单,无需任何库:
所以我想知道是否有任何Python程序员在那里有更多的经验,可以在这里解释如何运行上面的javascript代码,并将javascript输出作为Python字符串返回:
python
>>>javascriptOutput = runJavaScript("<script> function showPosition(position) </script>")
>>>print javascriptOutput
<p id="long">-122.15563439999998</p> <p id="lat">37.4458668</p>
>>>
Run Code Online (Sandbox Code Playgroud)
所以我的想法是在我在单个python函数中提供的JSfiddle URL中运行整个HTML块,它将返回JSfiddle提供的相同结果.
有了这个结果,我可以将它存储在一个python变量中并对它进行一些字符串连接,最终存储我准确的客户端经度和纬度坐标.
那么可以在Python函数中运行一些JavaScript吗?
要么
您可以使用Python/Django以某种方式读取用户在运行javascript/HTML5地理位置后看到的HTML源吗?
我现在越想到这一点,我就越开始认为Javascript将需要AJAX到Django服务器......
每个人似乎都指向本指南,以便轻松插入密码重置:http: //garmoncheg.blogspot.com.au/2012/07/django-resetting-passwords-with.html
所以从我读过的内容来看,如果你希望它能够运行,那么网址就是你所需要的4个url定义:
urlpatterns = patterns('',
. . .
url(r'^user/password/reset/$', 'django.contrib.auth.views.password_reset', {'post_reset_redirect' : '/user/password/reset/done/'}, name="password_reset"),
(r'^user/password/reset/done/$', 'django.contrib.auth.views.password_reset_done'),
(r'^user/password/reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', {'post_reset_redirect' : '/user/password/done/'}),
(r'^user/password/done/$', 'django.contrib.auth.views.password_reset_complete'),
. . .
)
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,因为我仍然臭名昭着
NoReverseMatch at/user/password/reset /
有了这个:
Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb64': 'NA', u'token': u'3ps-749165b2b39d4168f97f'}' not found. 1 pattern(s) tried: ['user/password/reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$']
Run Code Online (Sandbox Code Playgroud)
指南中是否有某些东西已经折旧我将链接放在顶部?我应该将任何内容导入urls.py文件吗?
我是金字塔的新手,我正在遵循这个指南:http: //docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/authorization.html
在Django中,视图和URL工作或者崩溃了,但是我从来没有遇到过在views.py和urls.py中明确定义的网页会出现404错误的情况,这种情况从未发生在我身上.如果其中任何一个出现问题,它都会崩溃,而不会抛出404.
我正在构建一个维基页面以获取金字塔上的东西,但在我继续学习本教程之前,我已经碰壁了.
我的init .py文件设置如下:
def main(global_config, **settings):
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
Base.metadata.bind = engine
authn_policy = AuthTktAuthenticationPolicy(
'sosecret', callback=groupfinder, hashalg='sha512')
authz_policy = ACLAuthorizationPolicy()
config = Configurator(settings=settings,
root_factory='tutorial.models.RootFactory')
config.set_authentication_policy(authn_policy)
config.set_authorization_policy(authz_policy)
config.include('pyramid_chameleon')
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('view_wiki', '/')
config.add_route('view_page', '/{pagename}')
config.add_route('add_page', '/add_page/{pagename}')
config.add_route('edit_page', '/{pagename}/edit_page')
config.add_route('login', '/login')
config.add_route('logout', '/logout')
config.scan()
return config.make_wsgi_app()
Run Code Online (Sandbox Code Playgroud)
我的views.py文件设置如下:
@view_config(route_name='login', renderer='templates/login.pt')
@forbidden_view_config(renderer='templates/login.pt')
def login(request):
login_url = request.route_url('login')
referrer = request.url
if referrer == login_url:
referrer = '/' # never use the login form itself …
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个存储有关文章基本信息的模型,同时存储当前登录用户的名称,这可能吗?或者是需要在views.py文件中完成的事情.
这是我的代码:
from django.db import models
from time import time
from django.contrib.auth.models import User
def get_upload_file_name(instance, filename):
return "uploaded_files/%s_%s" % (str(time()).replace('.','_'), filename)
# Create your models here.
class Article(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(User.get_username()) #AUTOMATICALLY STORE USERNAME
body = models.TextField()
pub_date = models.DateTimeField(auto_now=True)
likes = models.IntegerField(default=0)
thumbnail = models.FileField(upload_to=get_upload_file_name)
def __unicode__(self):
return self.title
Run Code Online (Sandbox Code Playgroud)
这是处理views.py中的Article模型的函数:
def create(request):
if request.POST:
form = ArticleForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/articles/all')
else:
form = ArticleForm()
args = {}
args.update(csrf(request))
args['form'] = form
return …
Run Code Online (Sandbox Code Playgroud) 我正在阅读并阅读"实用Django项目:第二版"这本书,很多书已经过时了,整个章节根本不起作用.现在我正在尝试创建我的第一个平面页面,我收到404错误.
我正在尝试使用内置的'django.contrib.flatpages'应用程序,我已经通过管理面板创建了我的第一个平面页面:
这是我的urls.py文件:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
(r'', include('django.contrib.flatpages.urls')) #ADDED THIS LINE FOR FLATPAGES
)
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止对settings.py文件所做的事情:
SITE_ID = 1 # REQUIRED FOR 'django.contrib.flatpages'
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.flatpages', # ADDED FOR FLATPAGES
'south',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', #FOR FLATPAGES
)
Run Code Online (Sandbox Code Playgroud)
这就是我到目前为止所做的所有事情,我希望在导航到这本书的时候可以在"/ first-page /"上找到"TemplateDoesNotExist":http://example.com:1006/first-page /
但不是那样,我只是得到404错误.
我是正确地做了这个还是新的Django版本贬低了制作flatpages的方式?
我是Objective-C的新手,我是一名核心的Java和Python老手.
我创建了一个Objective-C脚本来调用URL并获取URL返回的JSON对象:
// Prepare the link that is going to be used on the GET request
NSURL * url = [[NSURL alloc] initWithString:@"http://domfa.de/google_nice/-122x1561692/37x4451198/"];
// Prepare the request object
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:30];
// Prepare the variables for the JSON response
NSData *urlData;
NSURLResponse *response;
NSError *error;
// Make synchronous request
urlData = [NSURLConnection sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];
// Construct a Array around the Data from the response
NSArray* object = [NSJSONSerialization
JSONObjectWithData:urlData
options:0
error:&error];
//NSLog(object);
// Iterate through …
Run Code Online (Sandbox Code Playgroud) 我通常不会以最好的方式编写我的Python代码,因为我对它比较新,有人要求我对Django应用程序进行更改,因为代码看起来不太好.
这是它的样子:
@login_required
def submission_set_rank(request):
r1_obj_id = request.GET.get('rank1','')
r2_obj_id = request.GET.get('rank2','')
r3_obj_id = request.GET.get('rank3','')
r4_obj_id = request.GET.get('rank4','')
r5_obj_id = request.GET.get('rank5','')
#rate the first BallotStats object
ballot_1 = BallotStats.objects.get(object_id=r1_obj_id)
ballot_2 = BallotStats.objects.get(object_id=r2_obj_id)
ballot_3 = BallotStats.objects.get(object_id=r3_obj_id)
ballot_4 = BallotStats.objects.get(object_id=r4_obj_id)
ballot_5 = BallotStats.objects.get(object_id=r5_obj_id)
ballot_1.score += 5
ballot_2.score += 4
ballot_3.score += 3
ballot_4.score += 2
ballot_5.score += 1
ballot_1.save()
ballot_2.save()
ballot_3.save()
ballot_4.save()
ballot_5.save()
return HttpResponseRedirect('/submissions/results/film/')
Run Code Online (Sandbox Code Playgroud)
事实证明,我意识到我一直在用这种方式编写我的Python代码,有没有办法让它看起来更好而不是占用21行代码?