用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加鏈接後返回的文章題目是一個整體,沒辦法一個文章一個文章的點連接。
