[含文档+PPT+源码等]精品基于PHP实现的美食菜谱网站》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等
软件开发环境及开发工具:
操作系统:Windows 10、Windows 7、Windows 8
开发语言:php
前端技术:JavaScript、VUE.js(2.X)、css3
开发工具:phpstorm、Visual Studio Code/HbuildX
数据库:MySQL 5.7.26(版本号)
数据库管理工具:phpstudy/Navicat
PHP版本:php7.1.9nts
服务器:Nginx1.15.11
管理员:首页,个人中心,用户管理,菜谱分类管理,美食菜谱管理,食材分类管理,食材商品管理,系统管理,订单管理等
普通用户:登录注册、首页,美食菜谱,食材商品,美食资讯,个人中心,购物车等
本系统功能完整,适合作为毕业设计、课程设计、数据库大作业。
下面是资料信息截图:
下面是系统运行起来后的一些截图:
豆果美食网的数据爬取比较简单,本次爬取的数据范围为川菜、粤菜、湘菜等八个中国菜系,包含菜谱名、链接、用料、评分、图片等字段。
豆果美食网
限于篇幅,仅给出核心代码。
1# 主函数
2def main(x):
3 url = 'https://www.douguo.com/caipu/{}/0/{}'.format(caipu,x*20)
4 print(url)
5 html = get_page(url)
6 parse_page(html,caipu)
7
8if __name__ == '__main__':
9 caipu_list = ['川菜', '湘菜','粤菜','东北菜','鲁菜','浙菜','湖北菜','清真菜'] #中国菜系
10 start = time.time() # 计时
11 for caipu in caipu_list:
12 for i in range(22):
13 # 爬取多页
14 main(x=i)
15 time.sleep(random.uniform(1, 2))
16 print(caipu,"第" + str(i+1) + "页提取完成")
17 end = time.time()
18 print('共用时',round((end - start) / 60, 2), '分钟')
短短几分钟就爬下了3032个菜谱信息,为了方便可视化分析,还需要对爬取的数据进行简单清洗。
本文数据清洗主要用到Python的Pandas库。
用pd.read方法导入爬取到的菜谱数据,并添加列名。预览数据如下:
爬虫过程中少量菜谱数据被重复抓取,需要用drop_duplicates方法删除。
通过info方法发现少量记录含有缺失值,用dropna方法删除。
爬取的评分字段含有多余的字符串且为object类型,需要替换多余字符串并转换为数字类型,方便后续计算。
为方便菜谱用料分析,需要根据用料字段计算出每个菜谱的用料数量。由于用料字段都是以逗号分隔,计算逗号数即可间接得到。
本文数据可视化主要用到pyecharts库,它能轻松实现酷炫的图表效果。
1from pyecharts import options as opts
2from pyecharts.charts import Page, Pie
3cut = lambda x : '4分以下' if x < 4 else ('4.1-4.5分' if x <= 4.5 else('4.6-4.9分' if x <= 4.9 else '5分'))
4df['评分分布'] = df['评分'].map(cut)
5df2 = df.groupby('评分分布')['评分'].count()
6df2 = df2.sort_values(ascending=False)
7df2 = df2.round(2)
8print(df2)
9c = (
10 Pie()
11 .add(
12 "",
13 [list(z) for z in zip(df2.index.to_list(),df2.to_list())],
14 radius=["20%", "80%"],# 圆环的粗细和大小
15 rosetype='area' #玫瑰图
16 )
17 .set_global_opts(
18 title_opts=opts.TitleOpts(title="菜谱评分分布"
19 ),
20 legend_opts=opts.LegendOpts(
21 orient="vertical", pos_top="5%", pos_left="2%" ,textstyle_opts=opts.TextStyleOpts(font_size=14)# 左面比例尺
22 ),
23
24
25 )
26 .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%",font_size=18),
27 )
28 )
29c.render_notebook()
菜谱评分分布玫瑰图
豆果美食网菜谱评分实行5分制。由上图可知,4分以下的菜谱占比不到2%,满分菜谱高达32.6%,可见用户对中国菜系菜谱评价普遍较高。
1from pyecharts import options as opts
2from pyecharts.charts import Page, Pie
3df2 = df.groupby('菜系')['评分'].count() #按菜系分组,对评分计数
4df2 = df2.sort_values(ascending=False) #降序
5print(df2)
6c = (
7 Pie()
8 .add("", [list(z) for z in zip(df2.index.to_list(),df2.to_list())])
9 .set_global_opts(title_opts=opts.TitleOpts(title="各菜系菜谱数量占比",subtitle="数据来源:豆果美食"))
10 .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
11 )
12c.render_notebook()
各菜系菜谱数量占比饼图
由上图可知,川菜和粤菜菜谱数量较多,显示出作为中国“八大菜系”成员的地位。湖北菜和清真菜菜谱数量较少,相对更为小众。
1from pyecharts import options as opts
2from pyecharts.charts import Page, Pie
3df2 = df.groupby('菜系')['评分'].mean()
4df2 = df2.sort_values(ascending=False)
5df2 = df2.round(2)
6print(df2)
7c = (
8 Pie()
9 .add(
10 "",
11 [list(z) for z in zip(df2.index.to_list(),df2.to_list())],
12 radius=["40%", "75%"], # 圆环的粗细和大小
13 )
14 .set_global_opts(
15 title_opts=opts.TitleOpts(title="各菜系平均评分"),
16 legend_opts=opts.LegendOpts(
17 orient="vertical", pos_top="5%", pos_left="2%" # 左面比例尺
18 ),
19 )
20 .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
21 )
22c.render_notebook()
各菜系平均评分环状图
由上图可知,各菜系评分非常接近,用户平均评分都在4.6分以上。相对一致的评分,导致通过用户评分来评价菜谱的可信度降低。
from pyecharts.charts import Bar,Pie
from pyecharts import options as opts
df1 = df.groupby('菜系')['用料数'].mean() #按菜系分组,对评分计数
df1 = df1.sort_values(ascending=False) #降序
df1 = df1.round(0)
print(df1)
bar = Bar()
bar.add_xaxis(df1.index.to_list())
bar.add_yaxis("用料数量",df1.to_list())
bar.set_global_opts(title_opts=opts.TitleOpts(title="各菜系用料数量",subtitle="数据来源:豆果美食"))
bar.render_notebook()
各菜系用料数量柱状图
由上图可知,川菜和东北菜用料较足。川菜素有取材广泛、调味多、菜式多样等特点,虽然东北菜没有排在传统的“八大菜系”中,但豪迈热情的东北人从不吝啬菜肴里的用料。
粤菜更注重菜品的原味鲜香,具有清、鲜、爽、嫩、滑等特色,因此用料相对更少。清真饮食风俗源于伊斯兰教,部分食材属于禁忌物,因此用料也不多。
# 绘制词云图
text1 = get_cut_words(content_series=df[df['菜系']=='川菜']['用料'])
stylecloud.gen_stylecloud(text=' '.join(text1), max_words=1000,
collocations=False,
font_path='字酷堂清楷体.ttf',
icon_name='fas fa-thumbs-up',
size=653,
output_name='./川菜.png')
Image(filename='./川菜.png')
川菜用料词云图
由川菜用料词云图可知,川菜主要用料包括花椒、豆瓣酱和干辣椒。不怕辣的四川人喜好种植花椒,四川火锅也因为有了花椒的加入更有吸引力,千千万万的海内外寻味者奔涌相随。
料实材真,一般都能出美味。川菜用料最足的菜谱为川味砂锅之足不出户的麻辣烫,共用料35种。
川味砂锅之足不出户的麻辣烫
用料明细:毛肚,黄喉,鲜牛肉片,自制肉,鸭血,金针菇,平菇,豆芽,苕粉,冬笋片,白菜,莴笋叶,鹌鹑蛋(煮熟剥壳),猪骨汤,猪油,牛油,植物油(菜油上佳),姜片,大粒的蒜,郫县豆瓣,八角,茴香,桂皮,丁香,陈皮,香叶,白胡椒粉,冰糖,生抽,盐,葱结,花椒,干辣椒,鸡精丸,午餐肉
粤菜用料词云图
由粤菜用料词云图可知,粤菜主要用料包括胡椒粉、五花肉和白糖。粤菜的圣地在顺德,粤菜注重质和味,口味相对清淡,力求清中求鲜、淡中求美。
粤菜用料最足的菜谱为广式肠粉,共用料23种。
广式肠粉
用料明细:粉浆用料,粘米粉(米打的粉),澄面(小麦淀粉),土豆淀粉,粟米粉(玉米淀粉),水,酱汁用料,独头蒜,大蒜籽,姜片,香菜(不吃香菜的可用葱代替),鸡汤,鲜味生抽,老抽,蚝油,蜂蜜,鱼露(可不放),鸡精(个人喜欢就放,不放也很鲜了),水,肠粉里面放的料,肉末,鸡蛋,生菜叶
湘菜用料词云图
由湘菜用料词云图可知,湘菜主要用料包括辣椒、大蒜、花椒等。辣不怕的湖南人以辣椒为生,尤其以剁椒出名。J哥虽不是湖南人,但在湖南待了几年后,目前也成了个胖子。美食虽美,可不要贪多哦~
湘菜用料最足的菜谱为麻辣卤鸭三件,共用料20种。
麻辣卤鸭三件
用料明细:鸭爪(清水泡一小时),鸭翅膀(清水泡一小时啊),鸭肠(洗干净后捆成一个个小捆),白芷,桂皮,香叶,大料(两个焯水用,三个卤用),干辣椒(根据个人喜辣程度放),小茴香,花椒,麻椒,草果,生姜(一块焯水去味用,一块卤用),蒜瓣(全部去皮),辣椒酱(根据个人喜辣放),老抽,生抽,料酒,白糖,盐
东北菜用料词云图
由东北菜用料词云图可知,东北菜主要用料包括土豆、面粉、胡萝卜等。东北菜在做法上也融合了一些宫廷菜点和汉族饮食所长,利用东北特产原料和纯绿色食品原料。土豆和胡萝卜在黑土地的孕育下为东北菜源源不断输送着美味配方。
东北菜用料最足的菜谱为翡翠白菜水饺,共用料20种。
翡翠白菜水饺
用料明细:面皮制作,面粉(绿色面团所用),面粉(白色面团所用),小白菜叶(取汁),清水,馅料制作,猪五花肉,大白菜,胡萝卜,葱碎,姜沫,盐,生抽,老抽,蚝油,芝麻油,糖,鸡精,花椒粉,花生油
湖北菜用料词云图
由湖北菜用料词云图可知,湖北菜主要用料包括糯米、花椒、面粉等。千湖之省湖北坐落于江汉平原,同时作为重要的商品粮基地,从来不缺美食原料。
湖北菜用料最足的菜谱为家常美味——香菇鸡肉面,共用料23种。
家常美味——香菇鸡肉面
用料明细:鸡脯肉或鸡腿肉,香菇,刀削面或宽面,芹菜,青菜,郫县红油豆瓣,葱,姜,蒜,干辣椒,花椒,八角,老抽,生抽,料酒,淀粉,蛋清,十三香,白胡椒,鸡精,盐,蒜苗,香菜
浙菜用料词云图
浙菜主要用料包括白糖、冰糖、胡椒粉等。俗话说“上有天堂,下有苏杭”,素有鱼米之乡之称的浙江,赋予了浙菜丰富的原料。浙菜菜式小巧玲珑,菜品甜而不腻。
浙菜用料最足的菜谱为经典糖醋排骨,共用料17种。
经典糖醋排骨
用料明细:猪肋排,小葱段(煮排骨用),姜(煮排骨用),料酒(煮排骨用),冷水,绵白糖,米醋,香醋,老抽,盐,绵白糖(浇汁用),米醋(浇汁用),香醋(浇汁用),淀粉(浇汁用),温水(浇汁用),食用油,熟白芝麻
鲁菜用料词云图
鲁菜主要用料包括面粉、胡萝卜、蚝油等。鲁菜讲究原料质地优良,以本地用料为主。作为我国第二大小麦主产区,能够为面粉的制作提供充足的储备,同时还盛产胡萝卜、大白菜等蔬菜,成为鲁菜常用的配菜来源。
鲁菜用料最足的菜谱为大白菜炖牛肉,共用料28种。
大白菜炖牛肉
用料明细:炖牛肉,牛肉,葱姜,小香葱,冰糖,八角,草果,小茴香,香叶,干辣椒,蒜,洋葱,油,生抽,甜面酱,番茄酱,盐,清水,啤酒,大白菜炖牛肉,大白菜,熟牛肉,牛肉汤,粉丝,食用油,葱花,水淀粉,盐
清真菜用料词云图
清真菜主要用料包括蛋白、蛋清、面粉等。在我国,包括回族、维吾尔族、哈萨克族等10个少数民族具有清真饮食习惯,清真菜最突出的特点在于饮食禁忌比较严格,因此在用料上明显与其他菜系有所区别。清真菜的口味偏重咸鲜,汁浓味厚,肥而不腻,嫩而不膻。
清真菜用料最足的菜谱为糖醋蛋白肉,共用料15种。
糖醋蛋白肉
用料明细:蛋白肉,尖椒,小米椒,蒜瓣,小葱,食用油,糖,醋,蒸鱼豆豉,生抽,黄酒,番茄酱,淀粉,清水,盐
如果你觉得没有吃够,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
文链接:http://www.51jrft.com/jsj/jsjkxyjs/92.html
伴随着现代信息技术的迅猛发展,基于Web服务的信息发布已成为一种潮流,引领着技术改革与发展的前进方向。本设计主要是美食分享网站的建设,在美食爱好者之间建立一座桥梁。爱好美食的人们可以对美食信息进行发布、查询以及留言交流,宣传不同地方的饮食文化、饮食习俗以及饮食习惯等,整套系统具有一定的可读性和趣味性,能够使更多传统的美食做法得到广泛的传播与推广,同时能够激发更多的美食创意。 M00086
在网站的构建过程中,涉及到很多的软件知识,如ASP.NET技术、开发环境、数据库设计等,尤其着重于Web服务。本系统中,选用ASP.NET作为系统的开发工具,而SQL Server2005则是用来进行数据库管理系统的开发。
本设计实现了美食爱好者注册、登录和留言的功能,还可以将美食信息、个人信息进行发布,而且还提供了后台管理功能,如对留言、美食信息、个人信息等的管理。同时,本设计还实现了不同条件的查询功能与管理员对美食分享信息、会员个人信息、留言信息的管理。
关键词:ASP.NET;SQL Server2005;美食;网站建设 查看完整请+Q:351916072获取
Gourmet Food sharing Website
Abstract:With the development of modern information technology,The Web service information becomes the direction of reform and development based on Technology. This design is mainly Food sharing website construction,and build a bridge between Food lovers.
Food lovers can publish, on Food information query and message exchange, propaganda of different local diet culture, the diet custom, diet. The whole system has a readable and interesting, can make Food traditional practices more widely, also can stimulate more Food creative.
In the process of construction site, involving ASP.NET technology, development environment, database design knowledge. Especially the Web service.This system adopts ASP.NET as the system development tool,database management system using SQL Server2005.
Design and implementation of the Food lovers registration, login and message functions,can also Food information, the release of personal information, but also provides a background management functions, such as management of message, Food information, personal information etc. At the same time, this design also implements the inquiry function and administrator of different conditions on the Food share information, personal information, message information management.
Key word: ASP.NET;SQL Server2005; Food; Website construction
目录 查看完整请+Q:351916072获取
摘要 Ⅱ
Abstract Ⅲ
第一章 前言 1
1.1 引言 1
1.2 课题研究目的 1
1.3 课题研究背景 2
第二章 需求分析 3
2.1课题来源 3
2.2网站开发需求分析 3
2.2.1网站设计要求 3
2.3 软件介绍 4
2.3.1 系统开发平台选择 4
2.3.2 ASP.NET技术介绍 4
2.3.3 数据库技术的介绍 5
第三章 美食分享网站的设计 6
3.1美食分享网站分析 6
3.2美食分享网站制作顺序 7
3.3各功能模块要求 8
3.3.1 用户注册模块 8
3.3.2 用户登录模块 8
3.3.3 用户留言模块 9
3.3.4 用户美食分享模块 9
3.3.5 美食检索模块 10
3.3.6 管理员管理模块 10
3.3.7 关于我们模块 11
第四章 网站功能实现 12
4.1 主页设计实现 12
4.2 用户注册模块实现 13
4.3 用户登录模块实现 16
4.4 用户留言模块实现 20
4.5 用户美食分享模块实现 20
4.6 美食检索模块实现 22
4.7 管理员模块实现 25
4.8 关于我们模块实现 27
结束语 28
参考文献 29
致谢 30
3.3.4 用户美食分享模块
用户美食分享模块为已注册的美食爱好者在分享美食网接口,已注册的美食爱好者可上传美食的名称、美食类别、美食图片等美食相关信息,并且可对分享的信息进行管理。用户美食分享模块数据库设计如图3-5所示:
图3-5用户美食分享模块数据库设计图
美食分享网站
3.3.5 美食检索模块
美食检索模块可根据不同区域、不同菜式设置不同的美食检索,方便美食爱好者的操作与观看。美食检索模块数据库设计如图3-6所示:
图3-6美食检索模块数据库设计图
3.3.6 管理员管理模块
管理员管理模块肩负着维持网站正常运行的重任。管理员需要管理所有的用户个人信息以及他们所发布的美食分享信息。同时管理员也拥有着很大的权限,能够对新的美食信息进行发布和修改,对已注册会员进行注销,对过期或者不合格的美食信息进行修改甚至删除。管理员管理模块设计图如图3-7所示:
图3-7管理员管理模块设计图
3.3.7 关于我们模块
关于我们模块式对整个网站的介绍,介绍网站的核心思想,是美食爱好者了解网站的最明了的途径。
第四章 网站功能实现
4.1 主页设计实现
网站主页是网站形象最鲜明的体现,它的好坏直接影响到用户对网站的第一印象,因此网站主页的好坏对网站的生存和后期发展有着举足轻重的影响,主要体现在版块的布局以及色彩的搭配之上。在色彩的选择上,要和网站所想要表现的风格一致,不能仅凭个人喜好而随意安排,有时仅仅是因为一丁点色彩的差异就会给人以完全不同的感觉,可能就会与自己心中所想的风格相差千里。这时就需要我们能够准确定位自己的网站,对全局的设计有个清晰的认识,要能够挑选出最合适的色彩搭配方案。同时,空白区域的位置和数量对页面的整体布局也有着一定的影响。空白太多显得页面太空洞,而太少,反而会让人觉得拥挤,因此要掌握一个度。依据页面的整体布局,挑选出适当的字体和色彩搭配方案,进行合理安排,使主页简洁明快,令人耳目一新,使访问者赏心悦目。如图4-1为网站首页显示图。
图4-1网站首页显示图
4.2 用户注册模块实现
用户注册模块主要是让美食爱好者在网站上进行相关注册,需要填写个人信息,如用户名、密码、昵称、个人图片以及联系方式,而其中用户名、密码为必填项,昵称、个人图片、联系方式则为可选项。注册模块执行流程图如图4-2所示,注册界面显示如图4-3所示。注册代码如下所示。
图4-2注册模块执行流程图
图4-3注册界面显示图
protected void Button1_Click(object sender, EventArgs e)
{
string filename=FileUpload1.FileName;
string file;
string img="";
if (FileUpload1.HasFile)//判断控件是否有文件路径
{
filename=FileUpload1.FileName;//取得文件名
file=filename.Substring(filename.LastIndexOf(".") + 1);//取得后缀
if (file.ToLower()=="jpg" || file.ToLower()=="gif")//判断类型
{
img=DateTime.Now.Ticks + file.ToLower();
FileUpload1.SaveAs(Server.MapPath("~/images/") + img);
//传到根目录的images文件夹+重命名的文件名,也可以用原来的图片的名称,自己定。上传成功;
*请认真填写需求信息,我们会在24小时内与您取得联系。