Python Flaskをベースにした上海グルメ情報・ビジュアル広報サイト(アクセス方法:記事末尾の公式サイトへ)
1. プロジェクトの紹介
ビッグデータと人工知能技術の急速な発展に伴い、当社はビッグデータに基づいた上海料理システムを設計、開発しました。このシステムは、ユーザーに包括的でパーソナライズされた食品サービス体験を提供することを目的としています。この時代、人々の食に対する要求は単に食欲を満たすだけでなく、パーソナライズされた、健康的で便利な消費体験にさらに注目するようになっています。
システムの中核機能には、データ収集、パッケージ推奨、メッセージ、ユーザー管理、データ管理などが含まれます。データ収集機能では、上海のグルメ店やその店がリリースするパッケージの情報をさまざまなデータソースから収集します。高度な推奨アルゴリズムとユーザーの好みを組み合わせて、パーソナライズされたパッケージ推奨サービスをユーザーに提供し、ユーザーが自分の好みやニーズに合った食品の選択肢をすぐに見つけられるようにします。
同時に、ユーザーはシステムを通じてメッセージを残し、食事の経験やシステムへの提案を共有することができます。ユーザー管理機能は、登録、ログイン、個人情報管理など、システムの安全性と信頼性を確保します。
データ管理機能はシステムの重要な部分であり、食品ストア情報やパッケージデータを追加、削除、変更、確認して、データの整合性と一貫性を確保できます。さらに、食品データ管理、パッケージデータ管理、メッセージデータ管理などの多面的なデータ管理も提供し、管理者がデータを維持管理するのに便利です。
最新テクノロジーのサポートにより、Flask フレームワークを使用してシステムのアプリケーション層を構築し、MySQL データベースを通じてデータを保存し、データ分析と推奨アルゴリズムを使用してパーソナライズされたパッケージ推奨機能を実現します。このシステムは、フレンドリーなユーザー インターフェイスと柔軟な機能を通じて、ユーザーに便利で効率的な食品の選択と消費体験を提供することを目指しています。
要約すると、ビッグデータに基づく上海フード システムは、データ収集、パーソナライズされた推奨事項、ユーザー インタラクション、データ管理などの機能を組み合わせて、包括的でパーソナライズされた食品サービスをユーザーに提供します。上海在住の方も、上海を訪れる観光客の方も、このシステムを通じて自分の好みやニーズに合った食の選択肢を簡単に見つけて、食の楽しさと満足感を楽しんでいただけます。
2. 開発環境
開発環境 | バージョン/ツール |
---|---|
ニシキヘビ | 3.6.8 |
開発ツール | PyCharm |
オペレーティング·システム | ウィンドウズ10 |
メモリ要件 | 8GB 以上 |
ブラウザ | Firefox (推奨)、Google Chrome (推奨)、Edge |
データベース | MySQL 8.0 (推奨) |
データベースツール | Navicat プレミアム 15 (推奨) |
プロジェクトの枠組み | フラスコ |
3. プロジェクト技術
バックエンド: Flask、PyMySQL、MySQL、urllib
フロントエンド: Jinja2、Jquery、Ajax、layui
4. 機能構造
データ収集機能:グルメ店舗情報収集 [美団.com]から店舗名、住所、評価などのグルメ店舗の関連情報を取得し、データベースに保存します。主にクローラー技術を使用して、[Meituan.com] の店舗情報のデータを収集します。
パッケージレコメンド機能:パッケージの評価や価格などの情報に基づいて、ユーザーのパッケージレコメンドを分類してレコメンドします(ユーザーの行動データが収集できないため、一部のアルゴリズムを使用してレコメンドすることができません。ユーザーに関する行動データが収集できれば、協調フィルタリング)他のアルゴリズムも使用できます。推奨事項を作成します)。
食品データ管理:食品店舗情報の追加、変更、削除、照会機能、および店舗情報の名前、平均価格、評価などの管理。
パッケージデータ管理: パッケージ情報の追加、変更、削除、クエリの機能、およびパッケージの写真、価格、その他の属性の管理が含まれます。
メッセージ機能: ユーザーがシステムにコメント、提案、その他のフィードバック情報を残せるようにし、メッセージ データを処理するための対応する管理機能を提供します。
ユーザー管理機能: ユーザーのIDと権限を管理し、システムの安全性と信頼性を確保するために使用されるユーザー登録、ログイン、個人情報管理およびその他の機能。
このプロジェクトには、関連する紙の説明書が付属しています。
5. 実行中のスクリーンショット
情報推薦サイトのホームページ:
パッケージ推奨ページ:
伝言板:
バックエンドログイン:
バックエンドの登録:
バックエンド管理ホームページ:
ユーザー管理:
アナウンス管理:
グルメ データ ストアの管理:
パッケージ管理:
メッセージ管理:
システム クローラーのログ管理:
6. 機能実現
Web サイトのホームページのデータ読み込みコア機能インターフェイス層の実装コード:
#系统默认路径前台跳转
@app.route('/')
def main_page():
random_data = shop_service.get_random_shop()
price_data = shop_service.get_price_shop()
score_data = shop_service.get_score_shop()
return render_template("main.html", random_data=random_data, price_data=price_data, score_data=score_data)
网站首页数据加载核心功能业务逻辑层实现代码:
#查询首页随机商铺处理
def get_random_shop():
sql = "SELECT * FROM shop order by rand() LIMIT 9"
sqlManager = SQLManager()
data = sqlManager.get_list(sql)
sqlManager.close()
return data
#按最低价格推荐**
def get_price_shop():
sql = "SELECT * FROM shop order by avgPrice LIMIT 9"
sqlManager = SQLManager()
data = sqlManager.get_list(sql)
sqlManager.close()
return data
#按最高分推荐
def get_score_shop():
sql = "SELECT * FROM shop order by avgScore desc LIMIT 6"
sqlManager = SQLManager()
data = sqlManager.get_list(sql)
sqlManager.close()
return data
パッケージ データ管理データのロードおよびページング インターフェイス実装層のコードは次のとおりです。
#美食商铺数据分页**
@app.route('/list/shop', methods=['get'])
def shop_list():
page = request.args.get('page')
limit = request.args.get('limit')
where = request.args.get('searchParams')
result = shop_service.select_shop_list(page, limit, where)
return result.get()
パッケージ データ管理データのロードとページングのためのビジネス ロジック層のコードは次のとおりです。
#分页数据
def select_shop_list(page, limit, where):
page, limit, where = get_page_start(int(page), int(limit), where)
params_sql = get_search_params(where)
data_sql = "SELECT * FROM shop WHERE 1=1 " + params_sql + " ORDER BY id DESC LIMIT %s,%s"
count_sql = "SELECT COUNT(id) as i FROM shop WHERE 1=1 " + params_sql
sqlManager = SQLManager()
data = sqlManager.get_list(data_sql, (page, limit)) **#** **获取分页数据**
count = sqlManager.get_one(count_sql)['i'] **#** **获取数据总数**
shop = get_class_list(data, Shop)
page_result = PageData(count, shop)
return page_resul
7. データベース設計
データベース: 美食システム
テーブル名:商品
フィールド名 | データの種類 | 必要ですか? | 注記 |
---|---|---|---|
ID | int(11) | はい | 店舗店舗情報 |
ポイID | varchar(50) | いいえ | ストアID |
ショップID | int(11) | いいえ | 店 |
タイトル | varchar(255) | いいえ | 商品名 |
価格 | 10 進数(10,2) | いいえ | 製品価格 |
販売数 | int(11) | いいえ | 販売 |
テーブル名: メッセージ
フィールド名 | データの種類 | 必要ですか? | 注記 |
---|---|---|---|
ID | int(11) | はい | メッセージ |
コンテンツ | 長文 | いいえ | メッセージ内容 |
接触 | varchar(255) | いいえ | 連絡先 |
名前 | varchar(255) | いいえ | 電話 |
作成時間 | 日付時刻 | いいえ | メッセージ時間 |
状態 | int(11) | いいえ | ステータス (0 未処理、1 処理済み) |
テーブル名: ユーザー
フィールド名 | データの種類 | 必要ですか? | 注記 |
---|---|---|---|
ID | int(11) | はい | |
名前 | varchar(255) | いいえ | ユーザー名 (サプライヤー名) |
アカウント | varchar(255) | いいえ | ユーザーアカウント |
パスワード | varchar(255) | いいえ | ユーザーのパスワード |
会社 | varchar(255) | いいえ | 会社名 |
郵便 | varchar(255) | いいえ | 郵便 |
タイプ | int(11) | いいえ | 管理者 0 名、一般ユーザー 1 名 |
状態 | int(11) | いいえ | 0 無効 1 有効 |
8. ソースコードの取得
Yunyuan Practical Combat の公式 Web サイトには、ソース コード、インストール チュートリアル ドキュメント、プロジェクト紹介ドキュメント、およびその他の関連ドキュメントがアップロードされており、以下の公式 Web サイトからプロジェクトを入手できます。