用django写小说阅读页面
① windows7 下用django做了个最简单的blog,但保存文章时不断刷新页面并提示如下
一直再朝/post/页面传送,但似乎那个页面的后台处理有问题。
② django框架中html页面怎么排版
在数据库中存储的文件为HTML的text格式,如下

只需要在前端模板文件里使用{% autoescape off %}就可以了
③ 写好了django架构后怎么美化界面
如果是用户界面,请深入学习前端CSS或者使用免费的站点模板,再高端点就请个前端工程师。
如果你说的界面是admin,可以使用xadmin。
④ python 将txt内容写入网页
那请问题主会在网页上显示"hello world"吗?
其实原理是一样的,无非就是在网页上显示一个给定的字符串。
打开文件file = open('xxx.txt'),然后调用file.read()方法,就可以获得一个字符串,表示的是文件内容。最后别忘了file.close()。
⑤ 如何用django返回一个页面,并传递json数据,而不是仅仅返回json数据
可以的呀
引入render
fromdjango.shortcutsimportrender
返回时将httpresponse改为returnrender就可以了,类似
returnrender(request,'./index.html',{'username':'Johanna','pic':'001.png'})
⑥ 求助django 实现前端页面检索功能的代码
设我们的 django 博客应用有如下的文章模型:
blog/models.pyclass Post(models.Model):
# 标题
title = models.CharField(max_length=70)
# 正文
body = models.TextField()
# 其他属性
def __str__(self):
return self.title
先看到第 1 步,用户在搜索框输入搜索关键词,因此我们要在博客上为用户提供一个搜索表单,html 表单代码大概像这样:
<form method="get" action="/search/">
{% csrf_token %} <input type="search" placeholder="搜索" required>
<button type="submit">搜索</button></form>
特别注意在 form 标签下有一个 {% csrf_token %},这是 django 用来防御跨站请求伪造(CSRF)攻击的机制。如果不知道什么是 CSRF 的话也没有关系,只要记住在使用 django 时,前端的表单代码里一定要加上 {% csrf_token %}。
用户输入了搜索关键词并点击了搜索按钮后,数据就被发送给了 django 后台服务器。表单的 action 属性的值为 /search/,表明用户提交的结果将被发送给 /search/ 这个 URL。我们为这个 URL 绑定一个 django 视图函数,在这个视图函数里完成前面第 2 步提到的过程。假设我们把视图函数的代码写在 blog/views.py 里:
blog/views.pydef search(request):
q = request.GET.get('q')
error_msg = ''
if not q:
error_msg = '请输入关键词'
return render(request, 'blog/errors.html', {'error_msg': error_msg})
post_list = Post.objects.filter(title__icontains=q)
return render(request, 'blog/results.html', {'error_msg': error_msg,
'post_list': post_list})
首先我们使用 request.GET.get('q') 获取到用户提交的搜索关键词。用户通过表单提交的数据 django 为我们保存在 request.GET 里,这是一个类似于 Python 字典的对象,所以我们使用 get 方法从字典里取出键 q 对应的值,即用户的搜索关键词。这里字典的键之所以叫 q 是因为我们的表单中搜索框 input 的 name 属性的值是 q,如果修改了 name 属性的值,那么这个键的名称也要相应修改。
接下来我们做了一个小小的校验,如果用户没有输入搜索关键词而提交了表单,我们就无需执行查询,而是渲染一个错误页面提示用户请输入关键词。
如果用户输入了搜索关键词,我们就通过 filter 方法从数据库里过滤出符合条件的所有文章。这里的过滤条件是 title__icontains=q,即 title 中包含(contains)关键字 q,前缀 i 表示不区分大小写。这里 icontains 是查询表达式(Field lookups),其用法是在模型需要筛选的属性后面跟上两个下划线。django 内置了很多查询表达式,建议过一遍 django 官方留个印象,了解每个表达式的作用,以后碰到相关的需求就可以快速定位到文档查询其用途:Field lookups
接下来就是渲染搜索结果页面,显示符合搜索条件的文章列表,下面是一个模板的简单示例:
results.html
{% if error_msg %} <p>{{ error_msg }}</p>{% endif %}
{% for post in post_list %} <div>
在这里显示文章的相应信息 </div>{% empty %} <div class="no-post">
没有搜索到符合条件的文章 </div>{% endfor %}
有了视图函数后记得把视图函数映射到相应了 URL,前面我们表单数据提交的 URL 为 /search/,因此将视图函数 search 绑定到该 URL 上。
blog/urls.pyurlpatterns = [
# 其他 url 配置
url(r'^search/$', views.search, name='search'),]
大功告成!
⑦ django 一个页面两个表单 怎么提交
如果非要只有一个表单的话,通过js提交:
<script type="text/javascript" language="javascript">
function submitYouFrom(path){
$('form1').action=path;
$('form1').submit();
}
</script>
<form action="?" name="form1" id="form1">
<!-- 表单内容 -->
<input type="button" value="提交1" onclick="submitYouFrom('地址一')"/>
<input type="button" value="提交2" onclick="submitYouFrom('地址二')"/>
</form>
方法3:
function submitYouFrom(mets,path){
$("#form1").attr("action",path);
$("#form1").attr("method",mets);
$('#form1').submit();
}
submitYouFrom('方式',‘路径');
⑧ django modelchoicefield页面怎么写
1. 这是行不通的。看一看这ModelChoiceField工作原理:
try:
key = self.to_field_name or 'pk'
value = self.queryset.get(**{key: value})
except self.queryset.model.DoesNotExist:
raise ValidationError(self.error_messages['invalid_choice'])
return value
你不能随意添加到它。 使用ChoiceField代替和定制处理数据。
class TestForm(forms.Form):
mychoicefield = forms.ChoiceField(choices=QS_CHOICES)
def __init__(self, *args, **kwargs):
super(TestForm, self).__init__(*args, **kwargs)
self.fields['mychoicefield'].choices = \
list(self.fields['mychoicefield'].choices) + [('new stuff', 'new')]
def clean_mychoicefield(self):
data = self.cleaned_data.get('mychoicefield')
if data in QS_CHOICES:
try:
data = MyModel.objects.get(id=data)
except MyModel.DoesNotExist:
raise forms.ValidationError('foo')
return data
2. 看来,你只是想使这些表单字段是可选的。不要让坚硬的自己。请参阅有关的规定标志着一个表单域。
lead = forms.ModelChoiceField(queryset=People.objects.filter(poc__in=('lead', 'sr.lead')), required=False)
3. 你有PK Person对象'无'? 我想你应该
self.fields['lead'] = forms.ModelChoiceField(queryset = Pepole.objects.filter(poc__in = ('lead','sr.lead')), empty_label="None")
self.fields['lead2'] = forms.ModelChoiceField(queryset = Pepole.objects.filter(role__in = ('lead','sr.lead')), empty_label="None")
编辑: 既然你一个modelchoicefield,我认为所有的选择将是要么机型或者不选。 通过修改传递给构造函数的modlechoicefield,如QuerySet的你可以“扩展”该类型的选择:
qs = People.objects.filter(poc__in = ('lead','sr.lead'))
ext = People.objects.filter(role__in = ('lead', 'sr.lead'))
qs = qs | ext
self.fields['lead'] = forms.ModelChoiceField(queryset = qs, empty_label='None')
or for updating
self.fields['lead'].queryset = qs
⑨ Django怎么设置404页面
我们打开站点所在的文件夹,我的站点放在djangoweb文件夹下面
使用EDLE编辑settings.py文件
找到DEBUG,将其设置成False
再打开一个不存在的url的时候,就会没有错误提示
⑩ django怎么实现发布的文章在主页面以标题列表形式形式出现
你好 楼主这么久了 我发现有个问题
正常应该这么写:view:posts = Post.objects.all()
html:for post in posts
<li><a href="/posts/{{post.id}}/">{{post.title}}</a></li>
有个问题是objects.all后,post.title加链接后返回的文章题目是一个整体,没办法一个文章一个文章的点连接。
