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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

使用Python-Flask框架开发Web网站系列课程(一)构建项目

發(fā)布時(shí)間:2025/3/8 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Python-Flask框架开发Web网站系列课程(一)构建项目 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
版權(quán)聲明:如需轉(zhuǎn)載,請(qǐng)注明轉(zhuǎn)載地址。 https://blog.csdn.net/oJohnny123/article/details/81907475

前言


使用IDE:PyCharm

操作系統(tǒng): Mac

Python版本:3.6

我的郵箱:51263921@qq.com

交流群: 372430835

請(qǐng)注意,既然要學(xué)習(xí)開發(fā),那么要注意以下幾個(gè)問題。

1、開發(fā)語言版本不一樣,尤其是Python,會(huì)導(dǎo)致同一段代碼壓根跑不起來的情況。所以請(qǐng)保證版本一致。

2、操作系統(tǒng)不一樣,自然也會(huì)有區(qū)分,但是Mac環(huán)境和Linux環(huán)境基本還是比較相近,貼合生產(chǎn),所以使用Mac作為演示環(huán)境。但與Window的差別也不會(huì)很大。

3、簡(jiǎn)易使用一樣的IDE工具,但是不強(qiáng)求。

4、本課代碼的github地址在頁面最底。

?

構(gòu)建項(xiàng)目


一、創(chuàng)建虛擬環(huán)境venv

1、從前我很皮,不喜歡創(chuàng)建這東西,都是直接用系統(tǒng)環(huán)境的Python,后來項(xiàng)目一多,呵呵噠,這個(gè)項(xiàng)目用的Django1.9,那個(gè)項(xiàng)目又用Django2.0。得,亂套了。所以,請(qǐng)養(yǎng)成良好的習(xí)慣,使用venv大人。

2、通過PyCharm添加虛擬環(huán)境venv ,Windows在File->Settings,Mac在PyCharm->Preferences,? 打開頁面后,按下圖配置。Add local Python Interpreter。最后 Apply -> OK。

?

?二、安裝flask

2.1 看下圖,在Terminal控件里面執(zhí)行 pip install flask==1.0.2? 。

2.2 然后我們將這個(gè)階段的依賴包記錄下來,使用的命令為:? ? pip freeze>requirement.txt?

?2.3? 我們開始構(gòu)建目錄結(jié)構(gòu)

我們需要一個(gè)目錄放前端的代碼(frontend),一個(gè)放后端代碼(backend),一個(gè)放公共方法代碼(utils),一個(gè)放配置文件(config)。

我們?cè)诟夸沵yproject里面右鍵New->Python Package,用這個(gè)創(chuàng)建包。按上面括號(hào)里面的名字建。

2.4? 構(gòu)建后端代碼

?2.4.1 添加config.py,在/myproject/config下。

這東西就是我們網(wǎng)站以后所有配置存放的地方啦,其中Config放的是各個(gè)環(huán)境都一致的配置,ProdConfig放的是生產(chǎn)環(huán)境的配置,SitConfig存放SIT環(huán)境配置,其他類比。

最后的一行,代表config = SitConfig() 當(dāng)前獲取的是SIT環(huán)境的配置。

全路徑為:/myproject/config/config.py

內(nèi)容如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2017/11/8. """ import osBASE_DIR = os.path.dirname(os.path.abspath(__file__))class Config(object):"""Base config class."""# 版本VERSION = 'beta 0.1'# 項(xiàng)目名稱PROJECTNAME = 'myproject'# 端口PORT = 10101SECRET_KEY = '1234567890!@#$%^&*()'class ProdConfig(Config):"""Production config class."""# 是否開啟調(diào)試DEBUG = False# 主機(jī)ip地址HOST = '0.0.0.0'class SitConfig(Config):"""Development config class."""# Open the DEBUG# 是否開啟調(diào)試DEBUG = True# 主機(jī)ip地址HOST = '127.0.0.1'class DevConfig(Config):pass# Default using Config settings, you can write if/else for different env config = SitConfig()

2.4.2 修改/myproject/backend/__init__.py

這個(gè)是未來整個(gè)后端的入口文件,具體內(nèi)容如下:

全路徑:/myproject/backend/__init__.py

具體代碼如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2018/8/21 下午2:41. """from flask import Flask from config.config import configdef create_app():#初始化項(xiàng)目實(shí)例app = Flask(__name__)app.secret_key = app.config['SECRET_KEY']#導(dǎo)入配置項(xiàng)app.config.from_object(config)# 鉤子 在請(qǐng)求執(zhí)行之前@app.before_requestdef before_request():print('hi')return app

?

2.4.3 在根目錄添加后端項(xiàng)目管理文件? manage.py

要先補(bǔ)一個(gè)模塊? ?pip install Flask-Script==2.0.6

添加一個(gè)空的python腳本,manage.py

全路徑:/myproject/manage.py

內(nèi)容如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2018/8/21 下午3:40. """ from flask_script import Manager, Server from backend import create_appapp = create_app()app.debug = app.config["DEBUG"] # 獲取根目錄config.py的配置項(xiàng) host = app.config["HOST"] port = app.config["PORT"]# Init manager object via app object manager = Manager(app)# Create a new commands: server # This command will be run the Flask development_env server manager.add_command("runserver", Server(host=host,port=port,threaded=True))@manager.shell def make_shell_context():"""Create a python CLI.return: Default import objecttype: `Dict`"""# 確保有導(dǎo)入 Flask app object,否則啟動(dòng)的 CLI 上下文中仍然沒有 app 對(duì)象return dict(app=app)if __name__ == '__main__':manager.run()

2.4.4 添加視圖文件,views.py

我們?cè)L問一個(gè)鏈接,要顯示或者返回什么東西,就是在這里處理后返回給瀏覽器或者接口的。

全路徑:/myproject/backend/views.py

內(nèi)容如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2018/8/21 下午3:51. """ from flask import Blueprint,jsonify#賬戶的藍(lán)圖 訪問http://host:port/account 這個(gè)鏈接的子鏈接,都會(huì)跳到這里 account = Blueprint('/account', __name__)# 訪問http://host:port/account/test 這個(gè)鏈接,就會(huì)跳到這里 @account.route('/test') #上面的鏈接,綁定的就是這個(gè)方法,我們給瀏覽器或者接口請(qǐng)求 一個(gè)json格式的返回 def test():return jsonify({'code':0,'content':'hi flask'})

2.4.5 添加路由文件,urls.py

全路徑:/myproject/backend/urls.py

內(nèi)容為:

#!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2018/8/21 下午3:50. """from backend.views import account# 藍(lán)圖注冊(cè) def register(app):app.register_blueprint(account, url_prefix='/account', strict_slashes=False)

2.4.6 最后一步,添加內(nèi)容到入口文件__init__.py

我們添加了兩行代碼

from backend.urls import register register(app)

用來干啥的呢,是要把我們路由藍(lán)圖的對(duì)應(yīng)關(guān)系注冊(cè)到我們的 flask實(shí)例里面。和我們之前把配置文件注冊(cè)到app.config里面是一個(gè)道理。

路徑:/myproject/backend/__init__.py

內(nèi)容如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2018/8/21 下午2:41. """from flask import Flask from config.config import config from backend.urls import registerdef create_app():#初始化項(xiàng)目實(shí)例app = Flask(__name__)app.secret_key = app.config['SECRET_KEY']#導(dǎo)入配置項(xiàng)app.config.from_object(config)# 注冊(cè)路由register(app)# 鉤子 在請(qǐng)求執(zhí)行之前@app.before_requestdef before_request():print('hi')return app

三、啟動(dòng)項(xiàng)目

3.1? 點(diǎn)擊根目錄的manage.py,右鍵執(zhí)行

執(zhí)行方式如圖1,然后我們會(huì)發(fā)現(xiàn)還是缺了參數(shù),請(qǐng)看圖2、圖3,通過edit configurations,在彈出框中的 Parameters 里面輸入runserver。Apply后OK。

現(xiàn)在再次點(diǎn)擊根目錄的manage.py,右鍵執(zhí)行。

?* Serving Flask app "backend" (lazy loading)
?* Environment: production
? ?WARNING: Do not use the development server in a production environment.
? ?Use a production WSGI server instead.
?* Debug mode: on
?* Running on http://127.0.0.1:10101/ (Press CTRL+C to quit)
?* Restarting with stat
?* Debugger is active!
?* Debugger PIN: 110-176-230
?

現(xiàn)在,我們?cè)跒g覽器輸入? http://127.0.0.1:10101/account/test

?

圖1:

圖2

圖3

?

四、GITHUB地址

https://github.com/lyy8510a/myproject/releases/tag/v1

?

總結(jié)

以上是生活随笔為你收集整理的使用Python-Flask框架开发Web网站系列课程(一)构建项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。