用于vingd集成的django应用程序

django-vingd的Python项目详细描述


django vingd支持将vingd集成到django项目中。

基本设置

  1. 在已安装的应用程序中添加“django-u-vingd”。
  2. 配置django设置:
VINGD_SETTINGS={'sandbox':{'VINGD_USR':'test@knopso.com','VINGD_PWD':'123',}}VINGD_MODE='sandbox'
  1. 在任何使用vingd的django应用程序中定义vingd orders details(models.py):
# Imaginary scenario where users are voting for candidates via vingd.fromdjango.dbimportmodelsfromdjango.httpimportHttpResponseRedirectfromdjango_vingd.modelsimportVingdOrderclassCandidate(models.Model):name=models.CharField(max_length=128)votes=models.IntegerField(default=0)defadd_vote(self):Candidate.objects.filter(id=self.id).update(votes=models.F('votes')+1)self.votes+=1classVoteOrder(VingdOrder):candidate=models.ForeignKey(Candidate)# Short object descriptiondefget_display_name(self):return'Vote for candidate'# Handle form submission (before sending user to vingd)deftake_order(self):self.candidate_id=self.request.POST.get('candidate_id')# Determine vingd pricedefget_vingd_amount(self):return75# 0.75 vingd# Access is confirmed (user has returned back from vingd)defaccept_order(self):self.candidate.add_vote()# Serve requested content to userdefsuccess_response(self):returnHttpResponseRedirect('/')
  1. 在url(url.py)中注册订单类:
fromdjango_vingd.modelsimportVingdMetafrombase.modelsimportVoteOrderVingdMeta.register([VoteOrder,])urlpatterns=patterns('',(r'^vgd/',include('django_vingd.urls')),)
  1. 在HTML模板中放置Vingd订单:
{%forcandidateincandidates%}
    <form action="{%urlvingd_order"VoteOrder"%}" method="POST">
        {%csrf_token%}{{candidate.name}}: {{candidate.votes}}
        <input type="hidden" name="candidate_id" value="{{candidate.id}}">
        <input type="submit" value="vote">
    </form>
{%endfor%}

同步数据库并启动引擎!

拒绝访问内容

在某些情况下,不应允许用户访问内容。此类案件应同时处理:

  • 在vingd订购时拒绝访问(在将用户发送到vingd之前)
  • 在vingd验证时拒绝访问(在用户从vingd返回后)。

在这种情况下,应分别在接受令和接受令内提出例外。

处理异常

要优雅地处理任何类型的异常,应该使用vingdorder handle_exception函数:

defhandle_exception(self,e):# log exception# inform userreturnHttpResponse("Inform user that something has gone wrong.")

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像