最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?Flask?模型介紹和配置方法

 更新時間:2022年12月08日 11:27:36   作者:我是腫腫哦~~  
flask是基于MTV的結構,其中M指的就是模型,即數(shù)據(jù)模型,在項目中對應的是數(shù)據(jù)庫,下面紀錄以mysql和orm方式連接數(shù)據(jù)庫的方法,對Python?Flask?模型介紹和配置方法感興趣的朋友跟隨小編一起看看吧

Flask數(shù)據(jù)模型和連接數(shù)據(jù)庫

flask是基于MTV的結構,其中M指的就是模型,即數(shù)據(jù)模型,在項目中對應的是數(shù)據(jù)庫。flask與數(shù)據(jù)庫建立聯(lián)系有很多方法,但一般分為兩種,一種是使用pymsql對數(shù)據(jù)庫建立連接;還有一種是ORM映射的方式(基于pymysql),這種方式常用于web開發(fā)。以對象的形式與數(shù)據(jù)庫表做映射,方便對象在頁面中顯示。下面紀錄以mysql和orm方式連接數(shù)據(jù)庫。

一、安裝

準備工作,安裝一下庫:

pip3 install pymysql        建公路

pip3 install flask-sqlalchemy    實現(xiàn)ORM映射

pip3 install flask-migrate     發(fā)布命令工具

二、配置數(shù)據(jù)庫連接、創(chuàng)建模型類

步驟:
(1) 配置數(shù)據(jù)庫的連接路徑

# mysql+pymysql://user:password@hostip:port/databasename
# 數(shù)據(jù)庫+pymysql://用戶名:密碼@主機ip:端口/數(shù)據(jù)庫名
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@127.0.0.1:3306/flaskdemo'

(2) flask-sqlalchemy的搭建:在apps包下創(chuàng)建包ext(第三方庫的配置通常建個ext文件夾存放),用于存放與數(shù)據(jù)庫有關的代碼,在__init__.py中添加:

   db = SQLAlchemy()   ---->必須跟app聯(lián)系

在apps/init.py文件(這里我將啟動app和app初始化分開了,此處的__init__是app的初始化)下與app建立聯(lián)系:

   def create_app():
        ....
        # 跟app聯(lián)系
        db.init_app(app)

        return app

(3) 創(chuàng)建模型:models.py,模型就是類,經(jīng)常稱作模型類

  class User(db.Model):      ------> user表
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(15), nullable=False)
    password = db.Column(db.String(12), nullable=False)
    phone = db.Column(db.String(11), unique=True)
    rdatetime = db.Column(db.DateTime, default=datetime.now)

常見的數(shù)據(jù)類型:
Integer 整型
String(size) 字符串類型,務必指定大小
Text 長文本類型
DateTime 日期時間
Float 浮點類型
Boolean 布爾類型
PickleType 存儲pickle類型 主要跟序列化有關
LargeBinary 存儲大的二進制類型

可選的:
primary_key=True 主鍵
autoincrement=True 自增
nullable=False 不允許為空
unique=True 唯一
default=datetime.now 默認值 可以設置成當前系統(tǒng)時間或者其他的值

三、使用命令創(chuàng)建數(shù)據(jù)庫表

a. 在app.py 中導入模型:from apps.user.models import User —》讓模型與app關聯(lián)
b. 在終端使用命令:db 建立數(shù)據(jù)庫/更新數(shù)據(jù)庫
flask db init -----》 產(chǎn)生一個文件夾migrations
flask db migrate -----> 自動產(chǎn)生了一個版本文件
flask db upgrade ------> 同步,完成數(shù)據(jù)庫表創(chuàng)建

     項目結構
      | ---apps
      | ---ext
      | ---migrations    flask db init     只需要init一次
               |---versions   版本文件夾
                    |---71edde7ee937_.py    ---》 flask db migrate  遷移
                    |---cc0dca61130f_.py
                                                  flask  db upgrade 同步
                                                  flask  db downgrade 降級

四、以注冊為例

1.創(chuàng)建app、migrate(綁定app、數(shù)據(jù)庫),app.run啟動入口

2.apps文件下__init__.py文件初始化app配置

3.數(shù)據(jù)庫配置

4.創(chuàng)建模型類

5.通過命令創(chuàng)建數(shù)據(jù)庫表
flask db init -----》 產(chǎn)生一個文件夾migrations
flask db migrate -----> 自動產(chǎn)生了一個版本文件
flask db upgrade ------> 同步,完成數(shù)據(jù)庫表創(chuàng)建
此刻在pycharm的數(shù)據(jù)庫視圖中可以看到創(chuàng)建好的數(shù)據(jù)庫表

6.編寫注冊邏輯(視圖)

# 用戶注冊
@user_bp.route('/register', methods=['GET', 'POST'])
def register():
    if request.method == 'POST':
        username = request.form.get('username')
        password = request.form.get('password')
        repassword = request.form.get('repassword')
        phone = request.form.get('phone')
        email = request.form.get('email')
        if password == repassword:
            # 注冊用戶
            user = User()
            user.username = username
            # 自定義加密:new_password = hashlib.sha256(password.encode('utf-8')).hexdigest()
            # 使用自帶的函數(shù)實現(xiàn)加密:generate_password_hash
            user.password = generate_password_hash(password)
            print(len(user.password))
            user.phone = phone
            user.email = email
            # 添加并提交
            db.session.add(user)
            db.session.commit()
            return redirect(url_for('user.index'))
    return render_template('user/register.html')

7.編寫模板即html頁面即可實現(xiàn)簡單的注冊功能,實現(xiàn)MTV的整合

到此這篇關于Python Flask 模型介紹和配置方法的文章就介紹到這了,更多相關Python Flask 模型內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python使用BeautifulSoup進行XPath和CSS選擇器定位

    Python使用BeautifulSoup進行XPath和CSS選擇器定位

    在 Python 中,BeautifulSoup 是一個常用的 HTML 和 XML 解析庫,它允許我們輕松地定位和提取網(wǎng)頁中的特定元素,本文將詳細介紹如何在 BeautifulSoup 中使用 XPath 和 CSS 選擇器定位 HTML 元素,并提供示例代碼以幫助新手理解這些概念,需要的朋友可以參考下
    2024-11-11
  • python-pymongo常用查詢方法含聚合問題

    python-pymongo常用查詢方法含聚合問題

    這篇文章主要介紹了python-pymongo常用查詢方法含聚合問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python基礎之while循環(huán)、for循環(huán)詳解及舉例

    python基礎之while循環(huán)、for循環(huán)詳解及舉例

    所謂循環(huán)結構就是程序中控制某條或某些指令重復執(zhí)行的結構,下面這篇文章主要給大家介紹了關于python基礎之while循環(huán)、for循環(huán)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • 如何通過神經(jīng)網(wǎng)絡實現(xiàn)線性回歸的擬合

    如何通過神經(jīng)網(wǎng)絡實現(xiàn)線性回歸的擬合

    這篇文章主要介紹了如何通過神經(jīng)網(wǎng)絡實現(xiàn)線性回歸的擬合問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 解決安裝sklearn包失敗問題

    解決安裝sklearn包失敗問題

    這篇文章主要介紹了解決安裝sklearn包失敗問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-10-10
  • SQLAlchemy的主要組件詳細講解

    SQLAlchemy的主要組件詳細講解

    SQLAlchemy是一個基于Python實現(xiàn)的ORM框架,能滿足大多數(shù)數(shù)據(jù)庫操作需求,同時支持多種數(shù)據(jù)庫引擎(SQLite,MySQL,Postgresql,Oracle等),這篇文章主要介紹了SQLAlchemy的主要組件有哪些,本文給大家介紹的非常詳細,對大家的學習具有一定的參考借鑒價值,需要的朋友可以參考
    2023-08-08
  • 關于python之字典的嵌套,遞歸調用方法

    關于python之字典的嵌套,遞歸調用方法

    今天小編就為大家分享一篇關于python之字典的嵌套,遞歸調用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Python編寫Linux系統(tǒng)守護進程實例

    使用Python編寫Linux系統(tǒng)守護進程實例

    這篇文章主要介紹了使用Python編寫Linux系統(tǒng)守護進程實例,本文先是講解了什么是守護進程,然后給出了一個Python語言的簡單實現(xiàn),需要的朋友可以參考下
    2015-02-02
  • python安裝cxOracle避坑總結不要直接pip install

    python安裝cxOracle避坑總結不要直接pip install

    這篇文章主要為大家介紹了python安裝cx_Oracle是遇到的一些問題的解決辦法的總結,來幫大家避避坑有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步
    2021-10-10
  • Python中虛擬環(huán)境依賴問題的解決方案詳解

    Python中虛擬環(huán)境依賴問題的解決方案詳解

    在Python開發(fā)中,虛擬環(huán)境和依賴管理是必不可少的工具,本文將以一個實際案例為基礎,詳細分析如何解決Python虛擬環(huán)境中的依賴問題,希望對大家有所幫助
    2025-03-03

最新評論

林甸县| 中江县| 沙坪坝区| 赤水市| 儋州市| 东源县| 华亭县| 太白县| 西乌珠穆沁旗| 彭州市| 克拉玛依市| 康定县| 彭州市| 通河县| 枣阳市| 静海县| 于都县| 灵川县| 岑溪市| 哈巴河县| 渝中区| 青浦区| 松原市| 施秉县| 宜阳县| 新营市| 台中县| 上虞市| 石狮市| 宁津县| 浙江省| 保亭| 满城县| 青海省| 柯坪县| 油尖旺区| 施甸县| 铅山县| 罗甸县| 垣曲县| 昌邑市|