日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】Flask框架系列(二):安装、配置文件、增删改查

發布時間:2024/2/28 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】Flask框架系列(二):安装、配置文件、增删改查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL-python中間件的安裝

打開這里鏈接:https://www.lfd.uci.edu/~gohlke/pythonlibs/

這里32與64的選擇不是看操作系統的位數,而是看python的位數。我下載的是下面這個。

下載編譯后的 MySQL-python 包,然后進入包所在路徑,pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl包路徑,就好了。

小結

。。。和下面一樣的問題,pycharm里需要重新安裝。而且安裝的并不順暢。報錯如下:

error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27

解決方法:下載 VCForPython27.msi 。

地址: http://www.microsoft.com/en-us/download/confirmation.aspx?id=44266

(Microsoft Visual C++ Compiler for Python 2.7)

上面這個解決了,又遇到新問題。

虛擬環境和真實環境的問題。好像有三個環境,兩個虛擬環境(在命令行中一個(flask-env)開頭,一個(venv)開頭),一個真實環境(沒有任何東西開頭),我一開始在(flask-env)開頭的虛擬環境和真實環境中(使用命令行)安裝了mysql-python模塊,但是pycharm(file -> setting -> project interpreter)中找不到。后來分析覺得應該是環境的問題,即安裝的環境和運行的環境不是同一個環境在默認的(venv)開頭的環境中又安裝了一遍,終于pycharm中可以看到了。

安裝完工。

參考了下面的回答。

參考鏈接:https://zhidao.baidu.com/question/750631798599298972.html


Flask-SQLAlchemy的介紹與安裝

安裝:使用pip install flask-sqlalchemy。安裝過程大概要等待三分鐘。安裝之后,我這里pycharm檢測不到,from flask_sqlalchemy import SQLAlchemy這行報錯,重啟pycharm也不行,用以下方式解決:

在pycharm file -> setting -> project interpreter看看是否有flask-sqlalchemy,發現沒有,就又點擊加號,安裝了一遍。就好了。

ORM舉例

使用ORM思想的好處是:不需要自己實現sql語句,底層已經封裝好了。


Flask-sqlalchemy的使用



做測試:打開http://127.0.0.1:5000/,看控制臺有沒有報錯。

警告:(3719),“UTF 8”目前是字符集UTF8MB3的別名,在將來的版本中將被UTF8MB4替換。請考慮使用UTF8MB4,以便明確無誤。“)

沒有解決。不知道這個警告會不會影響后面。

config.py

# encoding: utf-8# dialect+driver://username:password@host:port/databse DIALECT = 'mysql' DRIVER = 'mysqldb' USERNAME = 'root' PASSWORD = '123456' HOST = '127.0.0.1' PORT = '3306' DATABASE = 'ssm'SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE) SQLALCHEMY_TRACK_MODIFICATIONS = False

app.py

# encoding: utf-8from flask import Flask from flask_sqlalchemy import SQLAlchemy import configapp = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app)db.create_all()@app.route('/') def index():return 'index'if __name__ == '__main__':app.run(debug=True)

SQLAlchemy模型與表映射——創建一個數據庫表(不需要自己寫sql語句)


示例:

app.py

# encoding: utf-8from flask import Flask from flask_sqlalchemy import SQLAlchemy import configapp = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app)db.create_all()class Article(db.Model):__tablename__ = 'article'id = db.Column(db.Integer, primary_key=True, autoincrement=True)title = db.Column(db.String(100), nullable=False)content = db.Column(db.Text, nullable=False)db.create_all()@app.route('/') def index():return 'index'if __name__ == '__main__':app.run(debug=True)

運行結果:新建了article表


增加一條數據

app.py

# encoding: utf-8from flask import Flask from flask_sqlalchemy import SQLAlchemy import configapp = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app)db.create_all()class Article(db.Model):__tablename__ = 'article'id = db.Column(db.Integer, primary_key=True, autoincrement=True)title = db.Column(db.String(100), nullable=False)content = db.Column(db.Text, nullable=False)db.create_all()@app.route('/') def index():# 增加article1 = Article(title='aaa', content='bbb')db.session.add(article1)# 事務提交db.session.commit()return '運行成功'if __name__ == '__main__':app.run(debug=True)

訪問網頁之后的執行效果


查詢一條數據


表中已有數據如下

app.py

# encoding: utf-8from flask import Flask from flask_sqlalchemy import SQLAlchemy import configapp = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app)db.create_all()class Article(db.Model):__tablename__ = 'article'id = db.Column(db.Integer, primary_key=True, autoincrement=True)title = db.Column(db.String(100), nullable=False)content = db.Column(db.Text, nullable=False)db.create_all()@app.route('/') def index():# 增加# article1 = Article(title='aaa', content='bbb')# db.session.add(article1)# 事務提交# db.session.commit()# 查找# select *from article where article.title='aaa';# result = Article.query.filter(Article.title == 'aaa').all() #按條件查詢result = Article.query.filter().all() # 查詢全部print resultfor a in result:print a.titlereturn '運行成功'if __name__ == '__main__':app.run(debug=True)

執行后輸出

[<Article 1>, <Article 2>, <Article 3>, <Article 4>, <Article 5>, <Article 6>] aaa bbb ccc vvv eee uuu

修改一條數據

app.py

# encoding: utf-8from flask import Flask from flask_sqlalchemy import SQLAlchemy import configapp = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app)db.create_all()class Article(db.Model):__tablename__ = 'article'id = db.Column(db.Integer, primary_key=True, autoincrement=True)title = db.Column(db.String(100), nullable=False)content = db.Column(db.Text, nullable=False)db.create_all()@app.route('/') def index():# 增加# article1 = Article(title='aaa', content='bbb')# db.session.add(article1)# 事務提交# db.session.commit()# 查找# select *from article where article.title='aaa';# result = Article.query.filter(Article.title == 'aaa').all() #按條件查詢# result = Article.query.filter().all() # 查詢全部# print result# for a in result:# print a.title# 修改# 1.先把要修改的數據查找出來article1 = Article.query.filter(Article.title == 'aaa').first()# 2.修改數據article1.title = 'newtitle'# 3.事務的提交db.session.commit()return '運行成功'if __name__ == '__main__':app.run(debug=True)

修改后


刪除一條數據


運行前

運行后

app.py

# encoding: utf-8from flask import Flask from flask_sqlalchemy import SQLAlchemy import configapp = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app)db.create_all()class Article(db.Model):__tablename__ = 'article'id = db.Column(db.Integer, primary_key=True, autoincrement=True)title = db.Column(db.String(100), nullable=False)content = db.Column(db.Text, nullable=False)db.create_all()@app.route('/') def index():# 增加# article1 = Article(title='aaa', content='bbb')# db.session.add(article1)# 事務提交# db.session.commit()# 查找# select *from article where article.title='aaa';# result = Article.query.filter(Article.title == 'aaa').all() #按條件查詢# result = Article.query.filter().all() # 查詢全部# print result# for a in result:# print a.title# 修改# 1.先把要修改的數據查找出來# article1 = Article.query.filter(Article.title == 'aaa').first()# 2.修改數據# article1.title = 'newtitle'# 3.事務的提交# db.session.commit()# 刪除# 1.把要刪除的數據查找出來article1 = Article.query.filter(Article.title == 'bbb').first()# 2.把要刪除的數據刪除掉db.session.delete(article1)# 3.事務提交db.session.commit()return '運行成功'if __name__ == '__main__':app.run(debug=True)

Flask-Script的介紹與安裝

需要新建manage.py文件(與Django類似)

示例1

運行方式

示例2:將子命令通過add_command('', )引入到manage.py中


運行方式

  • 這里的db對應的是manage.py第16行中的第一個參數名稱db,而init / migrate相當于db的子命令,也就是從db_script.py中引入的子命令

分開models和解決循環引用

循環引用問題:如下,運行時會提示cannot import name Article



解決方式:






關于 from app import… 的理解:https://segmentfault.com/q/1010000004418410/a-1020000011273279


Flask-Migrate的介紹




python的self的理解

#!/usr/bin/python # -*- coding: UTF-8 -*-class Employee:'所有員工的基類'empCount = 0def __init__(self, name, salary):self.name = nameself.salary = salaryEmployee.empCount += 1def displayCount(self):print "Total Employee %d" % Employee.empCountdef displayEmployee(self):print "Name : ", self.name, ", Salary: ", self.salary"創建 Employee 類的第一個對象" emp1 = Employee("Zara", 2000) "創建 Employee 類的第二個對象" emp2 = Employee("Manni", 5000) emp1.displayEmployee() emp2.displayEmployee() print "Total Employee %d" % Employee.empCount

python的self就與c++、java的this相同,是實例的引用。self也可以換成其他名稱。 只不過python的語法,需要把self放在類實例方法的第一個參數而已
示例

class Test:def prt(self):print(self)print(self.__class__)t = Test() t.prt()

輸出

<__main__.Test instance at 0x10d066878> __main__.Test


Flask中的session和cookie


超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的【Python】Flask框架系列(二):安装、配置文件、增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。