简单用flask写一个能装逼的博客

Muxxs
Muxxs 2018年02月03日
  • 在其它设备中阅读本文章

首先是用 flask

http://docs.jinkan.org/docs/flask/     <<<flask 的中文文档

其中利用

from flask import Flask,render_template
app = Flask(__name__)
app.run(host='0.0.0.0')

就可以开始一个面对外网的服务器

但是在这之前,我们要读取我们的博客内容

注意:由于是面对自己的博客,一定要给自己一点点逼格,所以不要写后台,不要用 low 的 html 页面,而是用命令行推送自己的文章

而在此,我们也可以选用数据库或者是文本保存这些数据

我选用的格式是

----------
***题目***
===*
内容
===*
----------
=====*=====
----------
***题目1***
===*
内容1
===*
----------
=====*=====
----------
***题目2***
===*
内容2
===*
----------

这样自己看着比较逼格低但是其实很简单,用 python 的无数个 split 就可以分出题目和内容。

由于速度优先,所以我们提前读取文本的内容

def get_text():
    content=open("text.txt")
    content=str(content.read())
    content_list=content.split("=====*=====")
    text=[]
    for i in content_list:
        title=i.split("===*")[0].split("***")[-2]
        content=i.split("===*")[1]
        content_title=title,content
        text.append(content_title)
    return text
all_content=get_text()
print all_content[0]

再使其成为全局变量被调用

@app.route('/page/<int:text_number>')
def show_text(text_number):
    global all_content
    print text_number
    title=str(all_content[text_number][0])
    content=all_content[text_number][1]
    return render_template('main.html', title=title,content=content)

这里的all_content[text_number][0]是题目 all_content[text_number][1]是内容

@app.route('/page/<int:text_number>') 中的 <int:text_number> 是文章的 ID 也就是说这个 text_number 是多少,显示的就是第几篇文章

再利用 title=title ,content=content 把这两个内容传入 main.html(在同目录中新建一个 templates 文件夹,放在这个文件夹下,这是模板文件夹)

而在 main.html 中,通过如下方式调用

<!doctype html>
{% if title %}
  <title>{{ title }}</title>
{% else %}
  <h1>Hello World!</h1>
{% endif %}

{% if content %}
  <h1>{{ content }}</h1>
{% else %}
  <h1>Hello World!</h1>
{% endif %}

html 我也不是很会。。。但是网上模板一大堆,稍微改改,或者用 bootstrap 一类的框架写个网页也很简单

 

那么逼格怎么形成呢

当然是你写日志的时候的命令行

具体的我也不怎么知道优化一下,可以根据我的改 - -

代码如下

#coding=utf-8
import uniout
import sys,time
reload(sys)
sys.setdefaultencoding('utf-8')
def printl(text):
    fmt = '\033[0;3{}m{}\033[0m'.format
    for i in text:
        import random
        random.seed()
        time.sleep(0.05)
        print fmt(random.randint(0,7),i),
printl("hello,hacker")
print "\n"
printl("password:")
password=raw_input()
while password<>"mimashikong":
    printl("password:")
    password = raw_input()


print "\n"
printl("welcome\n")
printl("title:")
title=raw_input()
printl("title:"+title+"\n")
printl("content:")


from functools import partial
inputNew = partial(raw_input,'\n')
sentinel = 'end' # 遇到这个就结束
lines = ""
for line in iter(inputNew, sentinel):
    if lines=="":
        lines=line
    lines=lines+"\n"+line
printl(lines)
text='''
=====*=====
----------
***&*(***
===*
)(*
===*
----------
'''
a=open('text.txt', 'a')
a.write(text.replace("&*(",title).replace(")(*",lines))
a.close()

如果用服务器的话,就用一个 post 或者 get 提交到服务器

OK 就这样