Flask 使用CSS框架


加載靜態文件

一個Web項目不僅需要HTML模板,還需要許多靜態文件,比如CSS、JavaScript文件、圖片和聲音聲。

在flask程序中,默認需要將靜態文件存儲在與主腳本(包含程序實例的腳本)同級目錄的static文件夾中。

為了在HTML文件中引用靜態文件,我們需要使用url_for()函數獲取靜態文件的URL。flask內置了用於獲取靜態文件的視圖函數,端點值為static,它的默認URL規則為/static/<path: filename>,

URL變量filename是相對於文件夾根目錄的文件路徑。

如果需要使用其他文件夾來存儲靜態文件,可以在實例化flask類時使用static_folder參數指定,靜態文件的URL路徑中的static也會自動跟隨文件夾名稱變化。

在實例化flask類時用static_url_path參數可以自定義靜態文件的URL路徑。

<img src="{{ url_for('static', filename='a.jpg') }}" width="50">

使用CSS框架

在編寫Web程序時,手動編寫CSS比較麻煩,更常見的做法是使用CSS框架來為程序添加樣式。

CSS框架內置了大量可以直接使用的CSS樣式類和javaScript函數,使用它們可以非常快速的讓程序頁面變得美觀和易用,同時我們也可以定義自己的CSS文件來進行補充和調整。

Bootstrap是最流行的開源前端框架之一,它有瀏覽器支持廣泛、響應式設計等特點。使用它可以快速搭建沒關、現代的網頁。

通常情況下,CSS和javaScript的資源引用會在基模板中定義,如:

{% block styles %}
    <link rel="stylesheet" href="{{ url_for('static',filename='css/bootstrap.min.css') }}">
{% endblock %}
...
{% block scripts %}
    <script src="{{ url_for('static', filename='js/jquery.min.js') }}}"></script>>
    <script src="{{ url_for('static', filename='js/popper.min.js') }}}"></script>
    <script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
{% endblock %}
...

 

如果不使用Bootstrap提供的javascript功能,也可以不加載。

Bootstrap所依賴的jQuery和popper.js需要單獨下載,這三個javaScript文件在引入時要按照jQeury->popper.js->Bootstrap的順序引入

如果下簡化開發過程,也可以從CDN加載,這很方便。

才能夠CDN夾雜時,只下將相應的URL替換我CDN提供的資源URL,如:

{% block styles %}
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
{% endblock %}
...
{% block scripts %}
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
{% endblock %}
...

Example:
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{{ url_for('static', filename='css/start.css') }}">
<script type="text/javascript" src="{{ url_for('static', filename='js/jquery.js') }}"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/start.js') }}"></script>

</head>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM