国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

2023版-零基礎(chǔ)玩轉(zhuǎn)Python Flask框架-學(xué)完可就業(yè)

2023-03-26 15:41 作者:嘿果汁  | 我要投稿

第五章 MYSQL數(shù)據(jù)庫

5.1.2Python操作mysql的驅(qū)動

有以下四種:

  • MYSQL_python,C語言操作Mysql數(shù)據(jù)庫的簡單封裝,只支持Python2
  • mysqlclient,執(zhí)行效率高但安裝容易出錯
  • pymysql,用python寫的
  • mysql-connector-python:mysql官方推出的純python連接mysql的驅(qū)動,但效率比pymysql還慢

pymysql安裝命令:

pip install pymysql

5.1.3 Flask-SQLAlchemy


簡介

在Flask中,我們很少會使用pymysql直接寫原生SQL語句操作數(shù)據(jù)庫,更多的用SQLAlchemy提供的ORM 技術(shù),類似于操作普通Python對象一樣實(shí)現(xiàn)數(shù)據(jù)庫的增刪改查。Flask-SQLAlchemy是對SQLAlchemy的簡單封裝。

安裝命令

pip install Flask-sqlalchemy

sqlalchemy官方文檔:sqlalchemy.org/

5.2 Flask-SQLAlchemy基本使用


5.2.1連接MySQL

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

//創(chuàng)建對象,在App.config中設(shè)置好連接數(shù)據(jù)庫的信息

//然后使用SQLAlchemy(app)創(chuàng)建db對象

//SQLAlchemy會自動讀取app.config中的連接信息。

db = SQLAlchemy(app)

HOST =

app.config[''] = f'mysql+pymysql://{}:{}:@{}/'

創(chuàng)建數(shù)據(jù)庫

先用navicat




第四章 Jinja2

pip list查看安裝包

  • 模板渲染 render_template的用法
  • 傳遞html

創(chuàng)建templates文件夾

創(chuàng)建static文件夾

@app.route('/')

def hello():

return render_template("index.html")

  • 傳遞html中的變量

@app.route("/blog/<blog_id>")

def hello(blog_id):

處理語句

return render_template("index.html",blog_id = blog_id,username="zl")

在html中添加:

{{blog_id}}

{{username}}

  • 4.1模板訪問對象屬性
  • 類對象的訪問方式

在py文件中創(chuàng)建User類對象

user = User(username="aa",email = "@qq.com")

return render_template("index.html",user=user);

html中

{{user.username}}/{{user.email}}

  • 字典變量的使用方法

py中定義

person={"username":"zhangsan",

“email”:“zhangsan@qq.com”}

html中訪問的兩種方式:

{{person["username"]}}

{{person.email}}

  • 4.2過濾器和測試器

如果需要對某個變量進(jìn)行處理,可以通過函數(shù)來實(shí)現(xiàn),在模板中,則是通過過濾器來實(shí)現(xiàn)的。過濾器的本質(zhì)也是函數(shù)。但是在模板中使用的方式是通過管道符號 | 來調(diào)用的。

例如,獲取name的長度,{{name|length}}

4.2.1自定義過濾器(在html中使用的)

py文件中

//定義過濾器,第一個參數(shù)是需要被處理的值,第二個參數(shù)是時間的格式,并制定了默認(rèn)值。

def datetime_format(value,format="%Y-%M-%d-%m:%H:%M"):

return value.strftime(format)

//在模板中注冊模板過濾器,并且把過濾器命名為dformat.

app.add_template_filter(datetime_format,"dformat")


py,app綁定的視圖函數(shù)中:

import datetime

mytime = datetime.now();


html中:

{{mytime|dformat}}

另一種使用方式:

@app.template_filter("dformat")

def datetime_format(value,format="%Y-%M-%d-%m:%H:%M"):

return value.strftime(format)

4.2.2 內(nèi)置過濾器

參考:Jinja過濾器官方文檔

4.3控制語句


4.3.1 if語句

1、創(chuàng)建if_statement的視圖函數(shù)

@app.route("/if")

def if_statement():

age = 18

return render_template("if.html",age = age)

在html中,判斷

<body>

{% if age>18 %}

<div>您已成年</div>

{% elif age<18 %}

<div>您未成年</div>

{% else %}

<div>剛剛成年</div>

{% endif %}

</body>

邏輯最好寫在后端。

4.3.2 for循環(huán)語句

py中

books=[{"name":"A","author":"B"},

{"name":"C","author":"D"},

]

html中

{% for book in books%}

<div>圖書名稱:{{book.name}},作者{{book.author}}</div>

{% endfor %}

for循環(huán)中沒有break語句。



4.4.2 模板繼承

<%extends "base.html">

{% block title%}

我是子模板的標(biāo)題

{% endblock %}

block語法的實(shí)現(xiàn)

{% block title%}

{% endblock %}

4.4.3加載靜態(tài)文件

省略了...




第三章 URL與視圖

url的組成:協(xié)議://域名/路徑:端口號

一般格式:

http/https://域名(www.google.com)/profile(:端口號)。

http協(xié)議用的80端口,

https協(xié)議用的443端口所以可寫可不寫。

一個路由對應(yīng)一個函數(shù)

  • 定義有參的url:將參數(shù)固定到了path中

@app.route(''/blog/<blog_id>)

def blog_detail(blog_id):

return "%s" % blog_id

定義類型

@app.route(''/blog/<int:blog_id>)

def hello(blog_id):

...

  • 查詢字符串的方式傳參

/book/list?page=2:獲取第二頁的數(shù)據(jù)。

import request

@app.route('root/list')

def book_list():

request.args.get("page",defualt = 1,type=int);

return f"{page}"

#arguments:參數(shù)

request.args.類字典類型

request.args.get(self ,key,default,type)


第二章 項(xiàng)目配置

1、debug模式:

debug mode :off

開啟debug模式后,可以直接看到修改后ctrl+s后的結(jié)果,不需要重啟項(xiàng)目。

開發(fā)的時候出現(xiàn)bug,如果開啟debug模式,在瀏覽器上就可以看到出錯信息。

打開debug模式:

a、

Edit configurations:

勾選Flask_DEBUG

b、社區(qū)版在app.run(debug = True);

或者app.debug = true;

一個是落實(shí)到代碼上,一個是修改pycharm IDE的配置,后者如果脫離了pycharm,那么運(yùn)行就不能開啟debug了。

2、修改host:

局域網(wǎng)中,讓別人的電腦訪問我的電腦上的flask項(xiàng)目,修改host為0.0.0.0,

修改方法:

Edit configurations:

Additional options: --host=0.0.0.0

3、port:修改端口號(酒店的房間號)

查看端口號:

修改端口號:

Additional options: --host=0.0.0.0 --port=8000

第一章 簡單的入門程序

從Flask包中導(dǎo)入flask類

創(chuàng)建app.

app == Flask(__name__);

  • __name__:代表當(dāng)前app.py模塊
  • 作用以后出現(xiàn)bug,他可以幫助我們快速定位。
  • 對于尋找模板文件,有一個相對路徑。


@app.route();#創(chuàng)建一個路由和視圖函數(shù)的映射

執(zhí)行下面緊密相聯(lián)的函數(shù)

主函數(shù): __name__ == '__main__'

2023版-零基礎(chǔ)玩轉(zhuǎn)Python Flask框架-學(xué)完可就業(yè)的評論 (共 條)

分享到微博請遵守國家法律
大名县| 克什克腾旗| 洛阳市| 吉林省| 鄂托克前旗| 阿城市| 咸丰县| 大田县| 万州区| 彰武县| 尚义县| 策勒县| 安庆市| 海伦市| 容城县| 仁寿县| 耒阳市| 定远县| 秦皇岛市| 泰顺县| 四子王旗| 奎屯市| 云南省| 武冈市| 镇赉县| 奇台县| 呼玛县| 甘德县| 五华县| 锡林浩特市| 西乌| 儋州市| 英吉沙县| 衡阳县| 宜宾县| 板桥市| 新乡市| 恩平市| 大兴区| 利津县| 清镇市|