ileOutputStream的用法
FileOutputStream是OutputStream的繼承類(lèi),從字面上就可看出,它的主要功能就是能向磁盤(pán)上寫(xiě)文件。write方法會(huì)把字節(jié)一個(gè)一個(gè)的寫(xiě)入磁盤(pán)中。
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
例:1.1.1
import java.io.*;
public class TestMark_to_win {
public static void main(String args[]) throws Exception {
FileOutputStream f=new FileOutputStream("c:/4.txt");
/*后面的write方法里面調(diào)用了c語(yǔ)言里面open方法。里面有native void open(String name)
*/
byte aa=97;
f.write(aa);
char bb='b';
/*沒(méi)有write(char),只能機(jī)器自動(dòng)轉(zhuǎn)從char到int*/
f.write(bb);
篇幅有限更多請(qǐng)見(jiàn)擴(kuò)展鏈接:http://www.mark-to-win.com/tutorial/java_8_UsageOfFileOutputStream.html
eb頁(yè)面, 一般是HTML頁(yè)面,是Internet組織 信息的基礎(chǔ)元素。Web頁(yè)面元素提取是一類(lèi)常見(jiàn) 問(wèn)題,在網(wǎng)絡(luò)爬蟲(chóng)、瀏覽器等程序中有著不可或 缺的重要作用。
HTML指超文本標(biāo)記語(yǔ)言,嚴(yán)格來(lái)說(shuō),HTML不 是一種編程語(yǔ)言,而是一種對(duì)信息的標(biāo)記語(yǔ)言, 對(duì)Web的內(nèi)容、格式進(jìn)行描述。
自動(dòng)地從一個(gè)鏈接獲取HTML頁(yè)面是簡(jiǎn)單網(wǎng)絡(luò)爬蟲(chóng)的功能,可以整體分成如下4個(gè)步驟:
根據(jù)上述步驟,可以寫(xiě)出主程序如下。其中設(shè)置 了4個(gè)函數(shù)getHTMLlines()、extractImageUrls()、 showResults()和saveResults()分別對(duì)應(yīng)上述4個(gè)步驟。
getHTMLlines():讀取保存在本地的html文件
extractImageUrls():解析并提取其中的圖片鏈接
showResults():輸出提取結(jié)果到屏幕
saveResults():保存提取結(jié)果為文件
代碼:
def main(): inputfile='nationalgeographic.html' outputfile='nationalgeographic-urls.txt' htmlLines=getHTMLlines(inputfile) imageUrls=extractImageUrls(htmlLines) showResults(imageUrls) saveResults(outputfile, imageUrls)
定義main()函數(shù)的目的是為了讓代碼更加清晰, 作為主程序,也可以不采用函數(shù)形式而直接編寫(xiě)。 main()前兩行分別制定了擬獲取HTML文件的路 徑和結(jié)果輸出路徑。
getHTMLlines()函數(shù)讀取HTML文件并內(nèi)容, 并將結(jié)果轉(zhuǎn)換為一個(gè)分行列表,為了兼容不同編 碼,建議在open()函數(shù)中增加encoding字段,設(shè)置采用UTF-8編碼打開(kāi)文件。
def getHTMLlines(htmlpath): f=open(htmlpath, "r", encoding='utf-8') ls=f.readlines() f.close() return ls
extractImageUrls()是程序的核心,用于解析文件并提取圖像的URL。
def extractImageUrls(htmllist): urls=[] for line in htmllist: if 'img' in line: url=line.split('src=')[-1].split('"')[1] if 'http' in url: urls.append(url) return urls
showResults()函數(shù)將獲取的鏈接輸出到屏幕上,增加一 個(gè)計(jì)數(shù)變量提供更好用戶(hù)體驗(yàn)。
def showResults(urls): count=0 for url in urls: print('第{:2}個(gè)URL:{}'.format(count, url)) count +=1
文出處:
Stack Overflow
https://stackoverflow.com/questions/2053258/how-do-i-output-html-in-a-message-in-the-new-django-messages-framework
原文標(biāo)題:
How do I output HTML in a message in the new Django messages framework?
我正在嘗試通過(guò)Django的消息框架顯示一條信息,這條信息中包含了一些HTML內(nèi)容。具體來(lái)說(shuō),我使用ModelAdmin.message_user方法發(fā)送消息,這個(gè)方法僅僅是對(duì)messages()的薄封裝:
到目前為止,我嘗試了很多方法,但最后都顯示轉(zhuǎn)義后的HTML。
上面的這段代碼行不通,下面的代碼也不行。
base.html模板里的代碼非常簡(jiǎn)單:
所以我不太確定我做錯(cuò)了什么。
非常感謝您的意見(jiàn)或指導(dǎo),謝謝!
該回答獲得最多的59個(gè)贊。
另一種選擇是使用extra_tags關(guān)鍵字參數(shù),用以表明該信息是安全的。例如:
然后利用模板邏輯來(lái)使用safe filter。
何謂轉(zhuǎn)義?就是把html語(yǔ)言的關(guān)鍵字過(guò)濾掉。例如,<div>就是html的關(guān)鍵字,如果要在html頁(yè)面上呈現(xiàn)<div>,其源代碼就必須是<div>
Django在默認(rèn)情況下會(huì)自動(dòng)轉(zhuǎn)義html關(guān)鍵字。如果不想轉(zhuǎn)義可以使用safe filter,還有autoescape tag。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。