国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

這篇具有很好參考價(jià)值的文章主要介紹了Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

1.全民制作人們大家好,我是練習(xí)時(shí)長兩年半的個(gè)人練習(xí)生只因坤坤,
喜歡唱,跳,rap,籃球,music......
在今后的節(jié)目中,我還準(zhǔn)備了很多我自己作詞、作曲、編舞的原創(chuàng)作品,
期待的話,請多多為我投票吧??
2. 只因博客:不是ikun請勿進(jìn),謝謝~~
3. Python進(jìn)階項(xiàng)目,總體框架為"bootstrap+flask+mysql",
	適合Flask框架入門學(xué)習(xí)使用??,
    本博客未使用restful技術(shù),可以實(shí)現(xiàn)一些博客的基本功能,
    咋從配置虛擬環(huán)境開始~~
4. 最后,關(guān)注我,一定能學(xué)會(huì)Flask框架,學(xué)不學(xué)無所謂hhh??????

只因首頁效果圖

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

1. 配置虛擬環(huán)境

1.1 具體步驟

# 打開cmd
1. 安裝virtualenv (windows操作系統(tǒng))
	pip install virtualenv virtualenvwrapper-win

2. workon查看虛擬環(huán)境
	workon

3. mkvirtualenv創(chuàng)建新的虛擬環(huán)境
	mkvirtualenv flask2env

4. rmvirtualenv刪除虛擬環(huán)境
	rmvirtualenv flask2env

5. 進(jìn)入虛擬環(huán)境
	workon flask1env

6. 在虛擬環(huán)境中安裝flask2
	pip install flask==2.2.3
    
7. 打開Pycharm專業(yè)版,創(chuàng)建Flask個(gè)人博客并配置好虛擬環(huán)境flask1env

1.2 Pycharm虛擬環(huán)境的配置

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

2. 安裝插件

2.1 Flask的ORM

Flask使用Python自帶的ORM: SQLAlchemy
針對于Flask的支持,安裝插件: flask-sqlalchemy
命令: pip install flask-sqlalchemy

2.2 數(shù)據(jù)遷移

命令: pip install flask-migrate

2.3 插件代碼

from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

db = SQLAlchemy()
migrate = Migrate()

def init_exts(app):
    db.init_app(app=app)
    migrate.init_app(app=app, db=db)

3.flask博客基本框架

3.1 app.py

from App import create_app

app = create_app()

if __name__ == '__main__':
    app.run(debug=True)

3.2 init.py

from flask import Flask
from .views.views import blog
from .views.views_admin import admin
from .exts import init_exts
# __init__.py :初始化文件,創(chuàng)建Flask應(yīng)用

def create_app():
    app = Flask(__name__)
    # 1. 注冊藍(lán)圖
    app.register_blueprint(blueprint=blog) # 博客前端頁面
    app.register_blueprint(blueprint=admin) # 博客后臺(tái)管理

    # 2. 配置數(shù)據(jù)庫
    # db_uri = 'sqlite:///sqlite3.db'  # sqlite配置
    db_uri = 'mysql+pymysql://root:cocair@localhost:3306/blogdb'  # mysql的配置
    app.config['SQLALCHEMY_DATABASE_URI'] = db_uri
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False  # 禁止對象追蹤修改

    # 3. 初始化插件
    init_exts(app=app)

    return app

3.3 views.py

from flask import Blueprint
from ..models.models import * # ..引用堂兄弟文件

# 藍(lán)圖
blog = Blueprint('blog', __name__)

@blog.route('/')
def index():
    return 'index'

3.4 views_admin.py

from flask import Blueprint
from ..models.models_admin import *

# 藍(lán)圖
admin = Blueprint('admin', __name__)

@admin.route('/')
def index():
    return 'index'

3.5 models.py

from ..exts import db

class User(db.Model):
    __tablename__ = 'tb_user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), unique=True, index=True)
    age = db.Column(db.Integer, default=1)

3.6 models_admin.py

from ..exts import db

class User(db.Model):
    __tablename__ = 'tb_user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), unique=True, index=True)
    age = db.Column(db.Integer, default=1)

此時(shí)初始的Flask框架就搭建好啦~~
不能理解的小伙伴可以看看這幾篇博客??????

Flask入門和視圖–01
Flask會(huì)話技術(shù)和Flask模板語言–02
Flask模型基礎(chǔ)–03

4.設(shè)計(jì)數(shù)據(jù)庫

敲黑板!!??看此片段時(shí)建議先看看這篇博客圖??
Flask數(shù)據(jù)遷移詳細(xì)步驟

初始的框架搭建好后,就需要開始數(shù)據(jù)庫的設(shè)計(jì)??~~
	1.models.py(用戶端數(shù)據(jù)庫)
    	分類數(shù)據(jù)庫:CategoryModel
        文章數(shù)據(jù)庫:ArticleModel
        相冊數(shù)據(jù)庫:PhotoModel
    其中分類數(shù)據(jù)庫與文章數(shù)據(jù)庫是一對多關(guān)系
    2.models_admin.py(管理員端數(shù)據(jù)庫)
    	管理員數(shù)據(jù)庫:AdminUserModel

4.1 models.py

from ..exts import db

# 分類 : 文章 ==> 1 : N
# 分類
class CategoryModel(db.Model):
    __tablename__ = 'tb_category'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), unique=True)
    describe = db.Column(db.Text(), default="describe")
    # 2.設(shè)置聯(lián)系&懶加載
    articles = db.relationship("ArticleModel", backref="category", lazy="dynamic")


# 文章
class ArticleModel(db.Model):
    __tablename__ = 'tb_article'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), unique=True)
    key = db.Column(db.String(255), default="keyword")
    content = db.Column(db.Text(), default="content")
    img = db.Column(db.Text(), default="img")
    # 1.(N): 設(shè)置外鍵category_id
    category_id = db.Column(db.Integer, db.Foreignkey(CategoryModel.id))

# 相冊
class PhotoModel(db.Model):
    __tablename__ = 'tb_photo'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    url = db.Column(db.Text(30)) # 由于考慮到文件路徑過長,所以使用Text()
    name = db.Column(db.String(255), unique=True)
    describe = db.Column(db.Text(), default="describe")

4.2 models_admin.py

from ..exts import db

class AdminUserModel(db.Model):
    __tablename__ = 'tb_admin user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), unique=True, index=True)
    passwd = db.Column(db.String(30))

4.3 數(shù)據(jù)遷移

1.數(shù)據(jù)遷移命令:
	1. 在cmd或Terminal先進(jìn)入項(xiàng)目目錄:
	2. 然后輸入命令:
		flask db init  
		創(chuàng)建遷移文件夾migrates, 只調(diào)用一次
    	flask db migrate  生成遷移文件
    	flask db upgrade  執(zhí)行遷移文件中的升級
    	flask db downgrade  執(zhí)行遷移文件中的降級
        
2.如果執(zhí)行flask db init報(bào)錯(cuò)??:
ValueError: the greenlet library is required to use this function.
則需要執(zhí)行:pip install greenlet即可

4.4 Mysql Workben

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

4.41 添加測試數(shù)據(jù)
tb_admin user

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

tb_category

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

tb_article

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

tb_photo

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

1. 測試數(shù)據(jù)量少時(shí),建議直接在數(shù)據(jù)庫里添加...
2. images/photos是原先就加載在模板(templates)文件下的模板,所以此處路徑為/static/home/photos/***.jpeg
3. 前端static、templates模塊,在文章末我會(huì)給出鏈接...

5. 編碼實(shí)現(xiàn)–功能端

只展示核心代碼~~
源碼我會(huì)放在文章末的鏈接??????

5.1 views

5.11 blog_index
# 博客_首頁
@blog.route('/')
@blog.route('/index/')
def blog_index():
    photos = PhotoModel.query.limit(6)
    categorys = CategoryModel.query.all()
    articles = ArticleModel.query.all()
    commends = articles[0:4] # 用切片取到前4張
    return render_template('home/index.html'
                           , photos=photos
                           , categorys=categorys
                           , articles=articles
                           , commends=commends
                           )
5.12 blog_photos
@blog.route('/photos/')
def blog_photos():
    photos = PhotoModel.query.all()
    return render_template('home/photos.html'
                           , photos=photos
                           )
5.13 blog_route
# 博客_我的日記
@blog.route('/article/')
def blog_article():
    articles = ArticleModel.query.all()
    return render_template('home/article.html', articles=articles)
5.14 blog_about
# 博客_關(guān)于我
@blog.route('/about/')
def blog_about():
    photos = PhotoModel.query.limit(6)
    categorys = CategoryModel.query.all()
    return render_template('home/about.html'
                           , photos=photos
                           , categorys=categorys
                           )

5.2 templates

5.21 index.html
<main class="r_box">
        <ul>
            {% for article in articles %}
                <li>
                    <i><a href="#"><img src="{{ article.img }}"></a></i>
                    <h3><a href="#">{{ article.name }}</a></h3>
                    <p> {{ article.content }} </p>
                </li>
            {% endfor %}
        </ul>
    </main>
5.22 article.html
<main class="r_box">
        <ul>
            {% for article in articles %}
            <li>
                <i><a href="#"><img src="{{ article.img }}"></a></i>
                <h3><a href="#"> {{ article.name }} </a></h3>
                <p> {{ article.content }} <p>
            </li>
            {% endfor %}
        </ul>
    </main>

5.3 只因博客效果圖??????

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)
Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)
Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

6.編碼實(shí)現(xiàn)–后臺(tái)管理系統(tǒng)

此后只展示后端代碼啦~~
前端只展示核心代碼(太長了...)

6.1 登錄 & 注銷

6.11 登錄裝飾器
# 裝飾器:登錄驗(yàn)證
def login_required(fn):
    @wraps(fn)
    def inner(*arg, **kwargs):
        # 判斷是否登錄
        # 獲取cookie,得到登錄的用戶
        user_id = request.cookies.get("user_id",None)
        if user_id:
            # 登錄過進(jìn)入后臺(tái)管理系統(tǒng)
            user = AdminUserModel.query.get(user_id)
            request.user =user
            return fn(*arg, **kwargs)
        else:
            # 如果沒有登錄,則跳轉(zhuǎn)登錄頁面
            return redirect('/admin/login')
    return inner

不理解裝飾器,可以參考此篇博客????
好的…本來想附上鏈接的…發(fā)現(xiàn)忘記寫了????
不過不要急,后期,一定補(bǔ)上(考研黨,諒解一下…)
簡單說下,裝飾器就是一個(gè)代碼復(fù)用模板,這里因?yàn)榈卿涷?yàn)證代碼每個(gè)功能實(shí)現(xiàn)中都需用到,所以直接封裝復(fù)用,格式為在需要用到此模塊的視圖函數(shù)上加@login_required

6.12 views_admin.py
# 后臺(tái)管理--首頁
@admin.route('/admin/')
@admin.route('/admin/index/')
@login_required
def admin_index():
    user = request.user
    categorys = CategoryModel.query.filter()
    articles = AdminUserModel.query.filter()
    photos = PhotoModel.query.filter()
    # 登錄成功,跳轉(zhuǎn)首頁
    return render_template("admin/index.html"
                           , username=user.name
                           , categorys=categorys
                           , articles=articles
                           , photos=photos)
"""
    未加登錄裝飾器
    user_id = request.cookies.get("user_id",None)
    if user_id:
        user = AdminUserModel.query.get(user_id)
        categorys = CategoryModel.query.filter()
        articles = AdminUserModel.query.filter()
        photos = PhotoModel.query.filter()
        # 登錄成功,跳轉(zhuǎn)首頁
        return render_template("admin/index.html"
                               , username=user.name
                               , categorys=categorys
                               , articles=articles
                               , photos=photos
                               )
    else:
        # 返回登錄頁面
        return redirect("/admin/login")
"""

# 后臺(tái)管理--登錄
@admin.route('/admin/login/', methods=["GET","POST"])
def admin_login():
    if request.method == "GET":
        return render_template("admin/login.html")
    elif request.method == "POST":
        username = request.form.get("username") #request.form.get()
        userpwd = request.form.get("userpwd")
        user = AdminUserModel.query.filter_by(name=username, passwd=userpwd).first()
        if user:
            # 登錄成功
            response = redirect("/admin/index/")
            # set_cookie(參數(shù)新名字\參數(shù)\cookie保存時(shí)間)
            response.set_cookie("user_id", str(user.id), max_age=1 * 24 * 3600)
            return response
        else:
            return "Login false"

# 后臺(tái)管理--注銷
@admin.route('/admin/logout/')
def admin_logout():
    response = redirect("/admin/login/")
    response.delete_cookie("user_id")
    return response
6.12 index.html
{# 如果用戶登錄了就顯示用戶名,如果沒有登錄就顯示登錄按鈕 #}
{% if username %}
    <li><a href="#"> 歡迎您: {{ username }} </a></li>
    <li><a href="/admin/logout/"> 注銷 </a></li>
{% else %}
	<li><a href="/admin/login/"> 登錄 </a></li>
{% endif %}
...
6.13 后臺(tái)管理 登錄頁面&首頁

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)
Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

6.2 分類管理

6.21 后臺(tái)管理–分類
# 后臺(tái)管理--分類
@admin.route('/admin/category/')
@login_required # 登錄裝飾器
def admin_category():
    user = request.user
    categorys = CategoryModel.query.all()
    return render_template("admin/category.html"
                           , username=user.name
                           , categorys=categorys)

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

6.22 后臺(tái)管理–添加分類
# 后臺(tái)管理--添加分類
@admin.route('/admin/addcategory/', methods=['GET','POST'])
@login_required
def admin_addcategory():
    if request.method == "POST":
        # 添加分類
        name = request.form.get("name")
        describe = request.form.get("describe")
        category = CategoryModel()
        category.name = name
        category.describe = describe
        try:
            db.session.add(category)
            db.session.commit()
        except Exception as e:
            print("e:",e)
            db.session.rollback()
        return redirect("/admin/category/")
    else:
        return '請求方式錯(cuò)誤!'

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

6.23 后臺(tái)管理–刪除分類
views_admin.py
# 后臺(tái)管理--刪除分類
@admin.route('/admin/del_category/', methods=['GET','POST'])
@login_required
def admin_del_category():
    if request.method == "POST":
        # 刪除分類
        id = request.form.get("id")
        category = CategoryModel.query.get(id)
        try:
            db.session.delete(category)
            db.session.commit()
        except Exception as e:
            print("e:",e)

        return jsonify({'code' : 200, 'msg' : '刪除成功!'})
    else:
        return jsonify({'code' : 400, 'msg' : '請求方式錯(cuò)誤!'})
**category.html (javascript)
<script>
    //是否確認(rèn)刪除
    $(function () {
        $("#main table tbody tr td a").click(function () {
            var that = $(this);
            var id = that.attr("cid"); //對應(yīng)id
            if (event.srcElement.outerText === "刪除") {
                if (window.confirm("此操作不可逆,是否確認(rèn)?")) {

                    // Ajax請求: 前后端分離
                    // 點(diǎn)擊刪除按鈕:
                    $.post('/admin/del_category/', {'id': id}, function(data){
                        console.log(data.msg)
                        if (data.code == 200) {
                            location.reload()
                        }
                    })
                }
            }
        })
    });
</script>
6.24 修改分類
后臺(tái)管理–修改分類
# 后臺(tái)管理--修改分類
@admin.route('/admin/updatecategory/<id>/', methods=['GET','POST'])
@login_required
def admin_update_category(id):
    if request.method == "GET":
        category = CategoryModel.query.get(id)
        return render_template("admin/category_update.html"
                               , category=category
                               , username=request.user.name)
    elif request.method == "POST":
        name = request.form.get("name")
        describe = request.form.get("describe")
        category = CategoryModel.query.get(id)
        category.name = name
        category.describe = describe
        try:
            db.session.commit()
        except Exception as e:
            print("e",e)
            db.session.rollback()

        return redirect("/admin/category/")
    else:
        return "請求方式錯(cuò)誤"
修改分類的頁面

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

修改分類的邏輯
修改分類的邏輯(這里比較繞,解釋一下~~)???
1. category.html頁面中點(diǎn)擊修改,此時(shí)會(huì)通過jinjia2模板中的{{ category.id }}(前端代碼里有,自行下載一下~~)傳輸給給后端數(shù)據(jù)(id),回到views_admin.py中
2. 當(dāng)request.method收到get的請求,便會(huì)執(zhí)行category = CategoryModel.query.get(id),通過此代碼會(huì)查找數(shù)據(jù)庫中為id的對象給category賦值,然后傳入category_update.html頁面
3. 通過前端category_update.html頁面,修改新值后,此時(shí)再通過前端提交,回到views_admin.py中
4. 執(zhí)行elif request.method == "POST":后的代碼

6.3 文章管理

6.31 文章管理
# 后臺(tái)管理--分類
@admin.route('/admin/category/')
@login_required
def admin_category():
    user = request.user
    categorys = CategoryModel.query.all()
    return render_template("admin/category.html"
                           , username=user.name
                           , categorys=categorys)
6.32 刪除文章
邏輯解釋
1. 刪除文章并不需要新創(chuàng)建h5
2. 只需用到j(luò)avascript技術(shù)即可??
刪除文章
# 后臺(tái)管理--刪除分類
@admin.route('/admin/del_category/', methods=['GET','POST'])
@login_required
def admin_del_category():
    if request.method == "POST":
        # 刪除分類
        id = request.form.get("id")
        category = CategoryModel.query.get(id)
        try:
            db.session.delete(category)
            db.session.commit()
        except Exception as e:
            print("e:",e)

        return jsonify({'code' : 200, 'msg' : '刪除成功!'})
    else:
        return jsonify({'code' : 400, 'msg' : '請求方式錯(cuò)誤!'})
javascript
<script>
    //是否確認(rèn)刪除
    $(function () {
        $("#main table tbody tr td a").click(function () {
            var that = $(this);
            var id = that.attr("aid");  //對應(yīng)id
            if (event.srcElement.outerText == "刪除") {
                if (window.confirm("此操作不可逆,是否確認(rèn)?")) {
                    // 刪除文章
                    $.post('/admin/delarticle/', {'id': id}, function (data){
                        console.log(data.msg)
                        if (data.code == 200) {
                            location.reload()
                        }
                        else {
                            alert(data.msg)
                        }
                    })
                }
            }
        });
    });
</script>
展示

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

6.33 添加文章
# 后臺(tái)管理--添加文章
@admin.route('/admin/addarticle/', methods=["GET","POST"])
@login_required
def admin_add_article():
    if request.method == "GET":
        categorys = CategoryModel.query.all()
        return render_template("admin/article_add.html"
                               , username=request.user.name
                               , categorys=categorys
                               )
    elif request.method == "POST":
        name = request.form.get("name")
        keywords = request.form.get("keywords")
        content = request.form.get("content")
        category = CategoryModel.query.get("category")
        img = request.files.get("img")

        # 圖片存儲(chǔ)路徑
        img_name = f'{time.time()}-{img.filename}' # 加時(shí)間戳,因?yàn)閳D片可能會(huì)重復(fù)
        img_url = f'/static/home/uploads/{img_name}'

        # 添加文章
        try:
            article = ArticleModel()
            article.name = name
            article.key = keywords
            article.content = content
            article.category_id = category
            article.img = img_url
            db.session.add(article)
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            db.session.flush()
            print("e:",e)
        else:
            # 如果上面添加到數(shù)據(jù)庫成功,那么手動(dòng)將圖片存入本地
            img_data = img.read()
            with open(f'App/{img_url}', 'wb') as fp:
                fp.write(img_data)
                fp.flush()

        return redirect('/admin/article/')
對圖片進(jìn)行添加時(shí)注意兩個(gè)操作
	1.保存文件的路徑時(shí)建議加上時(shí)間戳,因?yàn)榧由蠒r(shí)間戳可以防止同名相冊的存在
	2.除此之外,還需要寫入文件的操作

Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)

6.34 更新文章
# 后臺(tái)管理-修改文章
@admin.route('/admin/updatearticle/<id>/', methods=['GET', 'POST'])
@login_required
def admin_update_article(id):
    article = ArticleModel.query.get(id)

    if request.method == 'GET':
        categorys = CategoryModel.query.all()
        return render_template('admin/article_update.html',
                           username=request.user.name,
                           categorys=categorys,
                           article=article
                      )
    elif request.method == 'POST':
        # 修改文章
        name = request.form.get('name')
        keywords = request.form.get('keywords')
        content = request.form.get('content')
        category = request.form.get('category')
        img = request.files.get('img')

        # 圖片存儲(chǔ)路徑
        img_name = f'{time.time()}-{img.filename}'
        img_url = f'/static/home/uploads/{img_name}'

        # 修改文章
        try:
            article.name = name
            article.keyword = keywords
            article.content = content
            article.img = img_url  # 圖片路徑
            article.category_id = category

            db.session.commit()
        except Exception as e:
            db.session.rollback()
            db.session.flush()
            print('e:', e)
        else:
            # 如果上面添加到數(shù)據(jù)庫成功,那么手動(dòng)將圖片存入本地
            img_data = img.read()
            with open(f'App/{img_url}', 'wb') as fp:
                fp.write(img_data)
                fp.flush()

        return redirect('/admin/article/')

7. 源碼鏈接

所以說,為什么關(guān)注又取關(guān)了呢???
難道不是ikun了嗎?!????
hhh,開個(gè)小玩笑??,切記玩梗歸玩梗,學(xué)習(xí)才是為主??!
關(guān)注我,一定能會(huì)Flask框架,學(xué)不會(huì)無所謂~~
本源碼還有瑕疵,懇請大家在評論區(qū)點(diǎn)評(接受一切質(zhì)疑,批評)????
源碼鏈接在這里哈~~

源碼+只因典藏圖+sql文件文章來源地址http://www.zghlxwxcb.cn/news/detail-435339.html

到了這里,關(guān)于Python進(jìn)階項(xiàng)目--只因博客(bootstrap+flask+mysql)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Flask Bootstrap 導(dǎo)航條

    Flask Bootstrap 導(dǎo)航條

    (43條消息) Flask 導(dǎo)航欄,模版渲染多頁面_U盤失蹤了的博客-CSDN博客 ? (43條消息) 學(xué)習(xí)記錄:Bootstrap 導(dǎo)航條示例_bootstrap導(dǎo)航欄案例_U盤失蹤了的博客-CSDN博客 1,引用Bootstrap?css樣式,導(dǎo)航欄頁面跳轉(zhuǎn) 2,頁面兩列div自適應(yīng) ? ?

    2024年02月15日
    瀏覽(24)
  • flask bootstrap頁面json格式化

    flask bootstrap頁面json格式化

    2024年02月07日
    瀏覽(25)
  • 16- flask-bootstrap模板的使用

    16- flask-bootstrap模板的使用

    Flask 中支持?flask-bootstrap模板 和?bootstrap-flask模板 一. flask-bootstrap 模板使用 ? ? ? ? (1).?下載:? pip install flask-bootstrap ? ? ? ? (2).??在? ext / __init__.py 中 創(chuàng)建bootstrap對象 ? ? ? ? (3).? 在? apps/__init__.py 中 初始化bootstrap 二. flask-bootstrap內(nèi)置block 三. 代碼實(shí)例

    2024年02月11日
    瀏覽(38)
  • 基于NodeJs+Express+MySQL 實(shí)現(xiàn)的個(gè)人博客完整項(xiàng)目

    基于NodeJs+Express+MySQL 實(shí)現(xiàn)的個(gè)人博客完整項(xiàng)目

    目錄 一、創(chuàng)建項(xiàng)目并初始化 項(xiàng)目結(jié)構(gòu) 二、安裝項(xiàng)目所需要的包 三、創(chuàng)建所需要的數(shù)據(jù)庫表 表 user 用于存放賬戶密碼 表 notepad 用于存放文章數(shù)據(jù) 表 leaving 用于存放留言板的數(shù)據(jù) 三、編寫app.js文件 1、導(dǎo)入所有需要的包 2、創(chuàng)建web服務(wù)器 3、創(chuàng)建db文件夾,在文件夾里面創(chuàng)建

    2024年02月08日
    瀏覽(18)
  • 基于Flask+Bootstrap+機(jī)器學(xué)習(xí)的世界杯比賽預(yù)測系統(tǒng)

    基于Flask+Bootstrap+機(jī)器學(xué)習(xí)的世界杯比賽預(yù)測系統(tǒng)

    ???♂? 個(gè)人主頁:@艾派森的個(gè)人主頁 ???作者簡介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對你有幫助的話, 歡迎評論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 一、項(xiàng)目介紹 1.1項(xiàng)目簡介 1.2技術(shù)工具 1.3頁面概述? 二、項(xiàng)目步驟 2.1首頁模塊 2.2查看

    2024年02月09日
    瀏覽(29)
  • 基于Flask+Bootstrap+機(jī)器學(xué)習(xí)的南昌市租房價(jià)格預(yù)測系統(tǒng)

    基于Flask+Bootstrap+機(jī)器學(xué)習(xí)的南昌市租房價(jià)格預(yù)測系統(tǒng)

    ???♂? 個(gè)人主頁:@艾派森的個(gè)人主頁 ???作者簡介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對你有幫助的話, 歡迎評論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 一、項(xiàng)目介紹 1.1項(xiàng)目簡介 1.2技術(shù)工具 1.3頁面概述? 二、項(xiàng)目步驟 2.1登錄模塊 2.2注冊

    2024年02月02日
    瀏覽(22)
  • 【Node.js實(shí)戰(zhàn)】一文帶你開發(fā)博客項(xiàng)目(API 對接 MySQL)

    【Node.js實(shí)戰(zhàn)】一文帶你開發(fā)博客項(xiàng)目(API 對接 MySQL)

    個(gè)人簡介 ?? 個(gè)人主頁: 前端雜貨鋪 ???♂? 學(xué)習(xí)方向: 主攻前端方向,也會(huì)涉及到服務(wù)端 ?? 個(gè)人狀態(tài): 在校大學(xué)生一枚,已拿多個(gè)前端 offer(秋招) ?? 未來打算: 為中國的工業(yè)軟件事業(yè)效力n年 ?? 推薦學(xué)習(xí):??前端面試寶典 ??Vue2 ??Vue3 ??Vue2Vue3項(xiàng)目實(shí)戰(zhàn) ??

    2024年02月02日
    瀏覽(27)
  • python項(xiàng)目結(jié)構(gòu)示例(python代碼結(jié)構(gòu)、python目錄結(jié)構(gòu))與python部署結(jié)構(gòu)、python部署目錄、flask項(xiàng)目結(jié)構(gòu)、flask目錄

    myproject/ :項(xiàng)目的根目錄,也是Python包的根目錄。 myproject/__init__.py :一個(gè)空的 __init__.py 文件,用于將 myproject 目錄標(biāo)記為一個(gè)Python包。 myproject/module1.py 、 myproject/module2.py 等:項(xiàng)目的模塊文件,包含項(xiàng)目的核心代碼。 tests/ :測試目錄,包含用于測試項(xiàng)目代碼的測試文件。

    2024年02月12日
    瀏覽(100)
  • Python-flask項(xiàng)目入門

    Python-flask項(xiàng)目入門

    一、flask對于簡單搭建一個(gè)基于python語言-的web項(xiàng)目非常簡單 二、項(xiàng)目目錄 示例代碼 git路徑 ?三、代碼介紹 1、安裝pip依賴 2.配置數(shù)據(jù)源 config.py 3、引用orm框架 訪問數(shù)據(jù)庫 /mapper/exts.py 4、啟動(dòng)文件 app.py 5、數(shù)據(jù)庫操作 通過Flask提供orm框架對數(shù)據(jù)庫進(jìn)行操作 5.1增加 5.2刪除 5.3修

    2024年02月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包