python - Django 的序列数据库?

标签 python django django-models django-forms django-views

我正在学习 Django 并创建一个生物序列数据库,包含使用如下所示模型的数百个序列,模型有两个字段,“Seq_ID”和“sequence”。我正在尝试编写一个 View ,以便它可以在主页上呈现所有序列的 ID,然后单击特定的 ID,它将显示关联的序列。

更新的 View 和网址:

型号:

from __future__ import unicode_literals

from django.db import models

    # Create your models here.
class FastaSeq(models.Model):

    Seq_ID =  models.CharField(max_length=20)
    Sequense = models.TextField()

    def __unicode__(self):

        return self.Seq_ID

查看:

from django.shortcuts import render
from django.conf import settings 
from .models import FastaSeq

def home(request):
    data = FastaSeq.objects.all()
    context = {'data':data}
    template = 'home.html'
    return render(request, template, context)

def single(request,Seq_ID):
    data = FastaSeq.objects.get(Seq_ID=Seq_ID)
    return render(request,template,{'data':data})

网址:

from django.conf.urls import url
from django.contrib import admin
from new_app import views as new_app_view



urlpatterns = [

    url(r'^admin/', admin.site.urls),
    url(r'^home/', new_app_view.home, name='home'),
    url(r'^User/(?P<Seq_ID>\d+)/$', new_app_view.single, name='single'), 

]

示例数据:

Seq_ID:
>01_sequence

Sequence:
LARALLLCAAVVCGAANPCCSHPCQNRGVCMSVGFDQYKCDCTRTGFYGENCTTPEFLTRIKLLLKPTP
DTVHYILTHFKGVWNIVNKISFLRNMIMRYVLTSRSHLIESPPTYNVHYSYKSWEAFSNLSYYTRALPPV
PDDCPTPMGVKGRKELPDSKEVVKKVLLRRKFIPDPQGTNLMFAFFAQHFTHQFFKTDIERGPAFTKGKN
HGVDLSHVYGESLERQHNRRLFKDGKMKYQMINGEMYPPTVKDTQVEMIYPPHIPEHLKFAVGQEVFGLV

使用此模型,我已将大约 50 个演示序列添加到数据库中,但无法写下可以在主页上显示序列 ID 的 View ,并且单击 ID 将使您看到序列数据。

更新:

显示一些错误:

No    return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
  File "/home/jai/.virtualenvs/env1/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 389, in _reverse_with_prefix
    (lookup_view_s, args, kwargs, len(patterns), patterns)
NoReverseMatch: Reverse for 'single' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['User/(?P<Seq_ID>\\d+)/$']
[06/Jul/2017 06:46:13] "GET /home/ HTTP/1.1" 500 133824

最佳答案

from .models import FastaSeq
def home(request):
    data = FastaSeq.objects.all()
    context = {'data':data}
    template = 'home.html'
    return render(request, template, context)

在模板中

{% for d in data %}
<a href="{% url 'single' d.Seq_ID %}">{{ d.Seq_ID  }}</a>
{% endfor %}

在 urls.py 中

url(r'^User/(?P<Seq_ID>[\w{}.-]{1,40})/$', 'views.single', name='single'), 

创建另一个 View

def single(request,Seq_ID):
    data = FastaSeq.objects.get(Seq_ID=Seq_ID)
    return render(request,template,{'data':data})

单个函数模板中`

{{ data.Seq_ID }}
{{ data.Sequense }}

关于python - Django 的序列数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44940818/

相关文章:

python - 如何避免使用opencv和numpy逐像素循环遍历图像

python - 工厂男孩工厂中错误的继承行为

javascript - 如何在编辑内容并将javascript变量传递给新输入的字段后将Django "forms.ModelForm"保存在数据库中

python - Django 在静态文件中使用静态文件 URL

python - 如何将计算结果保存在模型中而不需要重新计算每次调用?

python - 从可迭代的每个元素中删除单个键的优雅方法

python turtle 形状

python - 无法在 django 1.8 中使用自定义用户模型创建 super 用户

python - 如何创建基于其他字段进行评估的 Django 模型字段?

python - Django:如何从时间帖子中获得时差?