blog/public/archives/page/4/index.html
Ching 482b55e66d feat(package.json): 重装依赖
重装依赖

Signed-off-by: Ching <loooching@gmail.com>
2022-02-02 21:07:01 +08:00

40 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><title> MarkDown</title><meta name="description" content="A Blog Powered By Hexo"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="short icon" href="/favicon.png"><link rel="stylesheet" href="/css/apollo.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600" type="text/css"><meta name="generator" content="Hexo 6.0.0"><link rel="alternate" href="/atom.xml" title="MarkDown" type="application/atom+xml">
</head><body><header><a href="/" class="logo-link"><img src="/logo.png"></a><ul class="nav nav-list"><li class="nav-list-item"><a href="/" target="_self" class="nav-list-link">ALL</a></li><li class="nav-list-item"><a href="/categories/leetcode/" target="_self" class="nav-list-link">LEETCODE</a></li><li class="nav-list-item"><a href="/atom.xml" target="_self" class="nav-list-link">RSS</a></li></ul></header><section class="container"><ul class="home post-list"><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2016/02/15/Flask-Day-1/" class="post-title-link">Flask Day 1</a></h2><div class="post-meta"><div class="post-time">2016年2月15日</div></div><div class="post-content"><h3 id="“Hello-World”-in-Flask"><a href="#“Hello-World”-in-Flask" class="headerlink" title="“Hello World” in Flask"></a>“Hello World” in Flask</h3><p>Create a folder named <code>microblog</code> (or whatever you want). Then cd into that folder and run following prompt in terminal:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ python3 -m venv flask</span><br></pre></td></tr></table></figure>
<p>Now youll have a folder named <code>flask</code> inside <code>microblog</code>, containing a private version of Python interpreter.</p>
<p>And you should install <strong>flask</strong> and extensions by the commands below:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">$ flask/bin/pip install flask</span><br><span class="line">$ flask/bin/pip install flask-login</span><br><span class="line">$ flask/bin/pip install flask-openid</span><br><span class="line">$ flask/bin/pip install flask-mail</span><br><span class="line">$ flask/bin/pip install flask-sqlalchemy</span><br><span class="line">$ flask/bin/pip install sqlalchemy-migrate</span><br><span class="line">$ flask/bin/pip install flask-whooshalchemy</span><br><span class="line">$ flask/bin/pip install flask-wtf</span><br><span class="line">$ flask/bin/pip install flask-babel</span><br><span class="line">$ flask/bin/pip install guess_language</span><br><span class="line">$ flask/bin/pip install flipflop</span><br><span class="line">$ flask/bin/pip install coverage</span><br></pre></td></tr></table></figure>
<p>After that, lets create the basic structure for our application: <code>app</code> <code>app/static</code> <code>app/templates</code> <code>tmp</code>.</p>
<ol>
<li><code>app</code> — where the application package is</li>
<li><code>static</code> — stores static files like images, javascripts, and css.</li>
<li><code>templates</code> — where templates will go.</li>
</ol>
<p>Then you can start with <code>__init__.py</code> which should put into app folder (file <code>app/__init__.py</code>):</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> flask <span class="keyword">import</span> Flask</span><br><span class="line"></span><br><span class="line">app = Flask(__name__)</span><br><span class="line"><span class="keyword">from</span> app <span class="keyword">import</span> views</span><br></pre></td></tr></table></figure>
<p>The views are the handlers that response to requests from web browsers or other clients. Each view function is mapped to one or more request URLs.</p>
<p>Lets see what a views function looks like (file <code>app/views.py</code>):</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> flask <span class="keyword">import</span> Flask</span><br><span class="line"></span><br><span class="line">app = Flask(__name__)</span><br><span class="line"><span class="keyword">from</span> app <span class="keyword">import</span> views</span><br></pre></td></tr></table></figure>
<p>Finally we should create a script to starts up the web server with our application(file <code>run.py</code>):</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#!flask/bin/python</span></span><br><span class="line"><span class="keyword">from</span> app <span class="keyword">import</span> app</span><br><span class="line">app.run(debug=<span class="literal">True</span>)</span><br></pre></td></tr></table></figure>
<p>To indicating that is an executable file you need to run this in terminal:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ chmod a+x run.py</span><br></pre></td></tr></table></figure>
<p>Now the file structure should look like:</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">microblog\</span><br><span class="line"> flask\</span><br><span class="line"> &lt;virtual environment files&gt;</span><br><span class="line"> app\</span><br><span class="line"> static\</span><br><span class="line"> templates\</span><br><span class="line"> __init__.py</span><br><span class="line"> views.py</span><br><span class="line"> tmp\</span><br><span class="line"> run.py</span><br></pre></td></tr></table></figure>
<p>Then start to write the template (file <code>app/templates/index.html</code>):</p>
<figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">html</span>&gt;</span></span><br><span class="line"> </span><br><span class="line"> <span class="tag">&lt;<span class="name">head</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">title</span>&gt;</span>&#123;&#123; title &#125;&#125; - microblog<span class="tag">&lt;/<span class="name">title</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">head</span>&gt;</span></span><br><span class="line"> </span><br><span class="line"> <span class="tag">&lt;<span class="name">body</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">h1</span>&gt;</span>Hello, &#123;&#123; user.nickname &#125;&#125;!<span class="tag">&lt;/<span class="name">h1</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">body</span>&gt;</span></span><br><span class="line"> </span><br><span class="line"><span class="tag">&lt;/<span class="name">html</span>&gt;</span></span><br></pre></td></tr></table></figure>
<p>Now lets write the view function that uses this template (file <code>app/views.py</code>):</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> flask <span class="keyword">import</span> render_template</span><br><span class="line"><span class="keyword">from</span> app <span class="keyword">import</span> app</span><br><span class="line"></span><br><span class="line"><span class="meta">@app.route(<span class="params"><span class="string">&#x27;/&#x27;</span></span>)</span></span><br><span class="line"><span class="meta">@app.route(<span class="params"><span class="string">&#x27;/index&#x27;</span></span>)</span></span><br><span class="line"><span class="function"><span class="keyword">def</span> <span class="title">index</span>():</span></span><br><span class="line"> user = &#123;<span class="string">&#x27;nickname&#x27;</span>: <span class="string">&#x27;ching&#x27;</span>&#125; <span class="comment"># fake user</span></span><br><span class="line"> <span class="keyword">return</span> render_template(<span class="string">&#x27;index.html&#x27;</span>,</span><br><span class="line"> title=<span class="string">&#x27;Home&#x27;</span>,</span><br><span class="line"> user=user)</span><br></pre></td></tr></table></figure>
<p><code>render_template</code> function is what we import from Flask framework to render the template. It uses <a target="_blank" rel="noopener" href="http://jinja.pocoo.org/">Jinja2</a> templating engine.</p>
</div></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2016/02/12/first-post/" class="post-title-link">First Post</a></h2><div class="post-meta"><div class="post-time">2016年2月12日</div></div><div class="post-content"><p>This is the very first post I wrote,</p>
<p>with <a target="_blank" rel="noopener" href="https://www.typora.io/">Typora</a> &amp; <a target="_blank" rel="noopener" href="https://hexo.io/">Hexo</a>.</p>
</div></article></li></ul></section><footer><div class="paginator"><a href="/archives/page/3/" class="prev">PRVE</a></div></footer><script src="https://cdn.bootcss.com/mathjax/2.5.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></body></html>