鍍金池/ 問(wèn)答/ Linux問(wèn)答
安于心 回答

我用的是小企鵝輸入法,安裝fcitx,配置輸入法。

冷咖啡 回答

先f(wàn)ile_get_contents到網(wǎng)站html內(nèi)容,然后使用preg_match,preg_match_all匹配就可以了。為什么需要框架。
比如抓微信文章(我隨便敲的):

   $file = file_get_contents($url);
        $article = [];
        //文章標(biāo)題
        preg_match('/<title>(.*?)<\/title>/', $file, $title);
        $article[ 'title' ] = $title ? $title[ 1 ] : '';
        //文章正文
        preg_match('/<div class="rich_media_content " id="js_content">[\s\S]*?<\/div>/', $file, $content);
        
我甘愿 回答

apache的部署方式,我沒(méi)有使用過(guò)。我一般是是用nginx+uwsgi來(lái)部署flask的。

uwsgi --uid os373 --gid os373 --ini /var/www/pybolg/pyblog_uwsgi.ini

上面的代碼是使用uwsgi來(lái)部署我的flask程序的。執(zhí)行成功之后的log日志是這樣的。

圖片描述

所以,我個(gè)人認(rèn)為,你用uwsgi執(zhí)行了flask項(xiàng)目之后,項(xiàng)目的相關(guān)內(nèi)容已經(jīng)加載到了內(nèi)存。所以,不會(huì)每次url請(qǐng)求都重新執(zhí)行app.py。但是,但是.....

每個(gè)網(wǎng)頁(yè)瀏覽器要瀏覽url的時(shí)候,都要重新執(zhí)行一下 view 視圖函數(shù)里的內(nèi)容。

鐧簞噯 回答

$timestr = time();
$now_day = date('l',$timestr);
//輸出的是星期幾,注意是英文。例如星期五 這里會(huì)輸出Friday。
echo "今天:$now_day";
if ($now_day == 'Monday') {

//這里獲取商品打折的價(jià)

} else {

//這里獲取商品原價(jià)

}

解夏 回答

應(yīng)該是用的對(duì)方不對(duì)

文檔上有寫(xiě):
beforeRouteUpdate(2.2 新增)
在當(dāng)前路由改變,但是該組件被復(fù)用時(shí)調(diào)用
舉例來(lái)說(shuō),對(duì)于一個(gè)帶有動(dòng)態(tài)參數(shù)的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉(zhuǎn)的時(shí)候,
由于會(huì)渲染同樣的 Foo 組件,因此組件實(shí)例會(huì)被復(fù)用。而這個(gè)鉤子就會(huì)在這個(gè)情況下被調(diào)用。
可以訪問(wèn)組件實(shí)例 this

青裙 回答

先試試這個(gè)

location ^~ /appdoc {
  root /web/web1/appdoc/
  try_files xxx xxx xxx
}
使勁操 回答

一定要確認(rèn)你們新建的服務(wù)有沒(méi)有打開(kāi),在server文件夾下面,node index,開(kāi)啟服務(wù)器。

挽青絲 回答
merge:   
    a
   / \
  a1  b1
  |   |
  a2  b2
  |  /  -- merge
  | /
  a3 新的commit
rebase
    a
   / \
  a1  b1   
  |   |
  a2  b2  ----> rebase a -> a1 -> a2 -> b1 -> b2

不會(huì)產(chǎn)生新的commit
說(shuō)白了rebase就是選取兩個(gè)分支最近同樣的基點(diǎn),上例子就是a,然后把b1直接嫁接到你rebase的分支上

在深入一點(diǎn)的原理就是分支合并策略上了。

如果把root和index 兩行 放到 location / 里面 證書(shū)就是綠色的,沒(méi)問(wèn)題, 如果把root和index 放到 ocation /外面 證書(shū)就不灰色的,就不行了
圖片描述

圖片描述

旖襯 回答

參考這篇文章,我來(lái)翻譯一下:

這是一個(gè)方法,它具有原子性:

    public int getVector() {
        int index = vector.size() - 1;
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return vector.get(index);
    }

這也是一個(gè)方法,它也具有原子性:

    public void deleteVector() {
        int index = vector.size() - 1;
        vector.remove(index);
    }

所謂原子性,就是方法里的語(yǔ)句會(huì)順次執(zhí)行,不會(huì)被打斷。

但是你把它倆復(fù)合起來(lái),它就不再是原子的了:

    public static void main(String[] args) {
        VectorTest vectorTest = new VectorTest();
        new Thread(new Runnable() {
            public void run() {
                vectorTest.getVector();
            }
        }).start();
        new Thread(new Runnable() {
            public void run() {
                vectorTest.deleteVector();
            }
        }).start();
    }

在這里開(kāi)了兩個(gè)線程,一個(gè)執(zhí)行第一個(gè)方法,另一個(gè)執(zhí)行第二個(gè)方法,第一個(gè)方法一上來(lái)先獲取了向量的尺寸,然后就開(kāi)始休眠了,趁第一個(gè)方法不注意,第二個(gè)方法進(jìn)來(lái)刪除了向量里最后一個(gè)元素,等第一個(gè)方法醒過(guò)來(lái),再想找最后一個(gè)元素找不著了,就拋出錯(cuò)誤了,所以復(fù)合操作不具有原子性,中間被插入打斷了。

解決的方法就是加個(gè)鎖:

    public int getVector(){
        synchronized (vector) {
            int index = vector.size() - 1;
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return vector.get(index);
        }
    }

synchronized就是同步的意思,同步的意思是說(shuō)這一步邁不完,下一步不能開(kāi)始,所以這樣就保證了整個(gè)操作依然是原子級(jí)的,不存在被插入的可能。

膽怯 回答

redis端口改成什么了? ss -tlnpsudo iptables -nL 貼一下,謝謝

薄荷糖 回答

可以位于同一機(jī)器:

docker run -d -p 5000:5000 --name registry registry:2
docker image tag nginx:latest  localhost:5000/nginx:latest
docker push localhost:5000/nginx:latest
笑忘初 回答

原因是root應(yīng)用無(wú)法與user應(yīng)用在user會(huì)話中的dbus/fcitx輸出法交互.
這里有一個(gè)解決方案,不知能否解決你的問(wèn)題

參考:

https://askubuntu.com/questio...

歆久 回答

可以這樣寫(xiě)

echo "這是注釋" >> /dev/null
情皺 回答

因?yàn)槟阌昧?shift 啊

第一次循環(huán):沒(méi)有匹配到 -d,所以就匹配 * 了,而在里面有一個(gè) shift,所以這時(shí) $1 已經(jīng)變成 -d
第二次循環(huán):$1 已經(jīng)是 -d 了,所以就執(zhí)行了 -d 的邏輯咯

涼薄 回答

編輯~/.ssh/config文件,添加以下內(nèi)容:

Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa