美文网首页呆鸟的Python数据分析
使用Django框架开发的第一个简易web程序:计算fasta序

使用Django框架开发的第一个简易web程序:计算fasta序

作者: 小明的数据分析笔记本 | 来源:发表于2019-08-15 21:56 被阅读0次

Django是python写成的开放源代码的web应用框架

本次使用的基础配置
python版本:3.6.3
Django:2.2
Windows10系统
如何查看Django版本

import django
django.__version__

流程

  • 新建一个Calculate_Seq_Length_20190815_v1文件夹,使用windows下的命令行进入这个文件下,这里推荐 cmder 这个小工具。使用如下命令新建工程
django-admin startproject SeqLength

此时目录下多了一个SeqLength文件夹


image.png
  • 然后进入这个文件夹,创建新的应用
cd SeqLength
python manage.py startapp seqLengthapp
image.png
  • 进入seqLengthapp文件下新建templates文件夹用来存放html模板文件
    这里先存放一个用来输入序列的html文件,html代码如下:
<!DOCTYPE html>
<html>
    <title>Calculate Length of Sequence</title>
    <body>
        <h1>Please input sequence</h1>
        <form action="../Results/">
            <textarea rows=20 cols=60 name='text'>输入fasta格式的序列</textarea>
            <br>
            <input type="submit" value="序列提交">
        </form>
    </body>
</html>

将其命名为inputSeq.html,页面效果如下


image.png
  • 在SeqLength文件夹下的seetings.py文件中设置模板路径


    image.png
  • 在seqLengthapp文件夹下的views.py文件中添加处理函数


    image.png
  • 在SeqLength文件夹下的urls.py中设置路由


    image.png
  • 然后在Calculate_Seq_Length_20190815_v1/SeqLength文件夹下运行如下命令启动程序

python manage.py runserver
  • 在浏览器中输入http://127.0.0.1:8000/seqLen/可以看到效果
    image.png
  • 在templates文件夹下再新建一个html文件用来返回计算结果,命名为outputresult.html,代码如下
<!DOCTYPE html>
<html>
    <title>output</title>
    <body>
        <h1>这里是输出结果</h1>
        <table border="1">
            <thead>
                <th>序列名称</th>
                <th>序列长度</th>
                <th>GC含量</th>
            </thead>
            <br>
            <tbody>
                {% for line in seqLength %}
                <tr>
                    <td>{{line.SeqName}}</td>
                    <td>{{line.SeqLength}}</td>
                    <td>{{line.GCcontent}}</td>
                </tr>
                {% endfor %}
            </tbody>
        </table>
    </body>
</html>
  • 在views.py文件中设置处理函数
def calresults(request):
    datalist = []
    seq = request.GET['text']
    with open('1.fasta','w') as fw:
        fw.write(seq)

    for rec in SeqIO.parse('1.fasta','fasta'):
        d = {"SeqName":rec.id,"SeqLength":str(len(rec.seq)),\
            "GCcontent":str(GC(rec.seq))}
        datalist.append(d)

    return render(request,"outputresult.html",{'seqLength':datalist})
  • 在urls.py文件中配置路由


    image.png

运行

输入
image.png
返回结果
image.png

参考文献

  • 中国大学MOOC 《python云端系统开发入门》
  • B站 《Django 2.0和Python快速入门 (更新完毕)》

欢迎大家关注我的公众号小明的数据分析笔记本

公众号二维码.jpg

相关文章

网友评论

    本文标题:使用Django框架开发的第一个简易web程序:计算fasta序

    本文链接:https://www.haomeiwen.com/subject/mjbtsctx.html