Django在网页中调用python小程序

使用django或python的一些web程序的好处就是,可以直接将python中的程序稍作修改直接运用于web页面中,先如何将python的一些小程序运用于web中作一个笔记。

程序实现的功能:查找一个大序列中某个序列出现的个数及出现位置,程序有两个文本框表单,一个大文本框输入需要进行查找的序列,小文本框输入查询的序列KEY。一个提交按钮,提交之后显示结果。

1,首先,我们需要定义url,因为django对浏览器中的url都是有定义要求的,如图。

clip_image002我在url列表中添加了

(r’^count_sequence/$’,'sites.lab.views.count_seq’),

表示当你在浏览器中输入http://localhost/count_sequence/时会触发sites/lab/views.py里的count_seq函数。

2,根据自己需要定义函数。代码如下

def count_seq(request):

#定义函数明

seq_a = request.POST.get(‘seq_a’, ”).upper()

#从浏览器端获取值,这里使用的是POST,表示不在浏览器地址中传值,避免由于值太大而影响功能,同时将序列转换为大写,为了方便统计。

seq_c = request.POST.get(‘seq_c’, ”).upper()

seq_count = 0

#设置初始值

seq_position = 0

#设置初始值

seq_positions = ”

#设置初始值

if seq_a and seq_c:

#如果两个文本框中都有值则执行

seq_count = seq_a.count( seq_c )

#统计序列中key的个数

seq_position = seq_a.find( seq_c )

#统计位置

while seq_position != -1:

#由于find只返回第一个值,所以此循环进行位置的累加

seq_positions += str(seq_position)+’|’

seq_position = seq_a.find( seq_c, seq_position+1 )

#注:这是为了顺利往下累加,如果不加,程序将进入死循环

else:

#如果条件不成立则为空值

seq_a = ”

seq_c = ”

return render_to_response("count_sequence.html",{‘seq_a’:seq_a, ‘seq_c’:seq_c, ‘seq_count’:seq_count, ‘seq_positions’:seq_positions}) #返回的值,其中count_sequence.html为模板文件,后面的一个dictionary分别为返回的键值和此函数中真实的值,即’seq_a’表示模板中调用的名称,而seq_a则为此函数中的值,’seq_a’可以为其他名称,模板中调用正确即可。

clip_image004

3,创建相应的模板文件count_sequence.html,代码如下:

{% block title %}The Sequence{% endblock %}

<DIV ><form action="/count_sequence/" method="post">

#蓝色字体为表单代码,此处的method为post,action为url中定义的/count_sequence/表示调用的是views里的count_seq函数,注意要相互对应。

<textarea rows="8" cols="80" name="seq_a" >{{ seq_a|escape }}</textarea>

<br>

#注意名称,直接导致向函数传值

需要查询的片段:<input type="text" name="seq_c" value="{{ seq_c|escape }}">

<br/>

<input type="submit" value="提交">

</form>

</DIV>

{% block content %}

#青色字体为表单提交后显示结果代码,红的字体均为函数render_to_response传回的值

{% if seq_a and seq_c %}

<h2>您要统计序列中,{{ seq_c|escape }}的结果为:</h2>

序列中拥有需要统计的序列"{{ seq_c|escape }}"总共有{{ seq_count|escape }}条<br>

它们的位置分别为:{{ seq_positions|escape }}

{% endif %}

{% endblock %}

clip_image006

这样,就可以从浏览器输入http://localhost/count_sequence/来运行程序了。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Django后台给某个小程序发送图片,可以通过以下步骤实现: 1. 确保Django后台已经配置好了与微信小程序通信的接口。 2. 在Django创建一个视图函数,处理接收图片的请求,并返回给小程序。 ```python from django.http import HttpResponse def send_image(request): # 获取小程序的OpenID或其他身份信息 openid = request.POST.get('openid') # 获取图片数据 image_data = request.FILES['image'] # 进行处理,例如保存图片到服务器或其他操作 # 返回给小程序 return HttpResponse('图片发送成功') ``` 3. 在Django的URL配置文件,将该视图函数与对应的URL路径进行绑定。 ```python from django.urls import path from .views import send_image urlpatterns = [ path('send-image/', send_image, name='send_image'), ] ``` 4. 在微信小程序调用Django后台的接口,将图片数据发送到后台。 ```javascript wx.uploadFile({ url: 'https://your-django-backend.com/send-image/', filePath: '图片文件路径', name: 'image', formData: { openid: '用户的OpenID' }, success: function(res) { console.log(res.data); // 打印返回结果 } }); ``` 在以上代码,需要替换`https://your-django-backend.com`为你的Django后台的实际地址。同时,根据实际需求,可以对图片进行保存、处理或其他操作,然后根据业务需求返回相应的结果给小程序。 请注意,以上代码仅为示例,实际开发需要根据具体情况进行适当的调整和安全性的考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值