最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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è)的評論 (共 條)

使用qq登录你需要登录后才可以评论。
阿合奇县| 桐乡市| 丰城市| 阿拉善盟| 科技| 六盘水市| 揭西县| 稻城县| 达州市| 柳江县| 黎川县| 邵东县| 利辛县| 平度市| 涪陵区| 彭泽县| 安丘市| 余庆县| 吉水县| 临沭县| 健康| 怀柔区| 内江市| 婺源县| 巴塘县| 靖州| 桑植县| 连南| 景东| 深圳市| 玛纳斯县| 晋城| 新乡县| 山丹县| 云和县| 万全县| 中方县| 三穗县| 大同县| 樟树市| 溧水县|