我正在学习 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/