• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Python實現Web開發框架【Flask】入門

    在這里插入圖片描述
    首先創建一個python項目,就不同的python項目就好了,然后要安裝好 Flask pip insatll Flask

    入門案例

    之間在項目中創建一個py文件寫上代碼 在 PyCharm 中右鍵運行就好了

    from flask import Flask
    
    
    # 創建Flask應用
    app = Flask(__name__)
    
    
    # 創建路由和函數 默認只能通過 GET 方式拿到數據
    @app.route("/",  methods=["GET", "POST"])
    def hello():
        return "hello world flask"
    
    
    # @app.route("/students/<sid>")
    # 如果不寫類型為 int 那么就是啥都可以傳,如果寫了int那么只能 /students/int類型 否則訪問不到
    @app.route("/students/<int:sid>")
    def students(sid):
        return  f"您要查詢的編號為:{sid}"
    
    if __name__ == '__main__':
        # debug 代表修改后不要重啟,這是平時開發的時候哦玩的
        app.run(debug=True)
    

    執行效果:
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

    Jinja2模板引擎使用

    在項目中創建 templates 這個文件夾
    在這里插入圖片描述
    index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>hello world</title>
    </head>
    <body>
         <h1>你好:Flask</h1>
        <h3>姓名:{{ name }}</h3>
        <h3>年齡:{{ age }}</h3>
    
        <table>
             <thead>
                <tr>
                    <th>編號</th>
                    <th>姓名</th>
                    <th>年齡</th>
                </tr>
            </thead>
            <tbody>
                {% for p in persons %}
                    <tr>
                        <td>{{ p.id }}</td>
                        <td>{{ p.name }}</td>
                        <td>{{ p.age }}</td>
                    </tr>
                {% endfor %}
            </tbody>
        </table>
    
    </body>
    </html>
    

    python代碼
    使用模板的話 一定要導入 render_template

    # 要使用 模板 就一定要導入 render_template
    from flask import Flask, render_template
    
    
    # 創建Flask應用
    app = Flask(__name__)
    
    
    # 創建路由和函數 默認只能通過 GET 方式拿到數據
    @app.route("/",  methods=["GET", "POST"])
    def hello():
        # 調整到 模板頁面
        name = "張三"
        age = 188
        persons = [
            {"id": 1, "name": "張三", "age": 3},
            {"id": 2, "name": "李四", "age": 4},
            {"id": 3, "name": "王五", "age": 5},
        ]
        return render_template("index.html", name=name, age=age, persons=persons)
    
    
    if __name__ == '__main__':
        # debug 代表修改后不要重啟,這是平時開發的時候哦玩的
        app.run(debug=True)
    

    在這里插入圖片描述

    Flask 操作數據庫

    這里要 pip insatll pymysqlpip install flask-sqllchemy ,這屬于擴展 Flask 這個框架。安裝 flask-sqllchemy可能報錯,如果報錯可以參考這篇博客

    python 代碼

    # 要使用 模板 就一定要導入 render_template
    from flask import Flask, render_template
    from flask_sqlalchemy import SQLAlchemy
    import pymysql
    
    # 將 mymysql 作為 MySQLdb 使用
    pymysql.install_as_MySQLdb()
    
    # 創建Flask應用
    app = Flask(__name__)
    # 連接數據庫
    app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:[email protected]:3306/my-python"
    # 這是設置為 false 提高性能
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    # 連接MYSQL數據庫
    db = SQLAlchemy(app)
    
    # 創建模型 (到時候會自動更具這個模板創建表)
    class Persons(db.Model):
        # 這是對應的表名
        __tablename__="persons"
        # 第一個參數是 類型 第二個參數是 約束
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(20))
        age = db.Column(db.Integer)
    
    
    # 創建路由和函數 默認只能通過 GET 方式拿到數據
    @app.route("/",  methods=["GET", "POST"])
    def hello():
        # 調整到 模板頁面
        name = "張三"
        age = 188
        # 查詢數據庫表中的數據
        persons = Persons.query.all()
        return render_template("index.html", name=name, age=age, persons=persons)
    
    
    if __name__ == '__main__':
        # 創建所有的模型(表)
        db.create_all()
        # debug 代表修改后不要重啟,這是平時開發的時候哦玩的
        app.run(debug=True)
    

    運行后會自動幫我們在數據庫中更具 定義的 模型 創建好表 (如果已經創建就不會再重復創建了)
    在這里插入圖片描述
    順便插幾條數據測試一下:
    在這里插入圖片描述
    在這里插入圖片描述
    這里只是簡單入門,更多請參考:Flask 中文文檔

    版權聲明:本文為qq_43059674原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_43059674/article/details/103359517

    智能推薦

    第五章-Python3中Web開發框架flask實現用戶主頁和頭像

    點擊閱讀原文PC端訪問效果更佳。 代碼地址:https://github.com/ddxygq/PyCode/tree/master/web/flask/mega_tutorial/chapter6-homepage/app 本文翻譯自 The Flask Mega-Tutorial Part VI: Profile Page and Avatars 這是Flask Mega-Tutor...

    第六章-Python3中Web開發框架flask實現錯誤處理

    點擊閱讀原文PC端訪問效果更佳。 代碼地址:https://github.com/ddxygq/PyCode/tree/master/web/flask/mega_tutorial/chapter7-errorhandle/app 本文翻譯自The Flask Mega-Tutorial Part VII: Error Handling 這是Flask Mega-Tutorial系列的第七部分,我...

    Flask Web開發入門(七)之SQLAlchemy

    上一章中,我們簡單介紹了使用 SQLAlchemy ORM框架來訪問MySQL數據庫,本章我們將繼續就此話題進行展開。 SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. S...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    猜你喜歡

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    精品国产乱码久久久久久蜜桃不卡