全栈“食”代:用Django+Nuxt实现美食分享网站(一)腾讯云开发者社区

在这个项目中,我们用pipenv[5]来管理Python项目的环境依赖。Pipenv是Python社区偶像级大师KennethReitz牵头开发的开发流程优化工具,立志集所有项目管理工具(Node的npm、Ruby的bundler、PHP的composer等等)的优势为一体。我们通过下面的命令安装pipenv,并创建项目的依赖环境:

$pipinstallpipenv$pipenvshell如果看到命令提示符前面出现(recipes_app-nV3wuGJ1)的提示(后面那串随机字符串可能不一样),就表明我们已经成功地创建了项目独有的虚拟环境!我们接着安装Django“三件套”:

安装命令如下:

(recipes_app-nV3wuGJ1)$pipenvinstalldjangodjango-rest-frameworkdjango-cors-headers这时pipenv便产生了Pipfile文件,它的作用就类似Node项目中的package.json文件:

(recipes_app-nV3wuGJ1)$pythonmanage.pymigrate(recipes_app-nV3wuGJ1)$pythonmanage.pycreatesuperuser按照问题输入信息即可。要记住用户名和密码哦!然后运行开发服务器:

熟悉的界面,但是——没什么东西,而且全是英文!别担心,后面我们会一个个搞定。

接下来我们将实现本项目所需要用的所有API。对,你没有听错,我们会在这一步实现所有后端接口,大概只10分钟左右可以敲完!这就是Django的宣言:

Thewebframeworkforperfectionistswithdeadlines.

首先,在全局配置文件settings.py中做如下改动:

具体代码如下:

我们从第一步开始,完成菜谱Recipe数据模型如下:

第二步,为core子应用配置相应的后台管理功能。非常简单,只需注册定义好的Recipe模型:

fromdjango.contribimportadminfrom.modelsimportRecipe#Registeryourmodelshere.admin.site.register(Recipe)第三步,定义序列化器serializers.py(脚手架并不会自动创建,需要手动创建)。序列化器是DjangoRestFramework提供的功能,能够非常方便地将Django数据模型序列化成相应的JSON数据格式。在这里,我们定义一个RecipeSerializer,并在classMeta中指定对应的数据模型为刚才创建的Recipe,并选择相应的字段展示:

fromrest_frameworkimportviewsetsfrom.serializersimportRecipeSerializerfrom.modelsimportRecipeclassRecipeViewSet(viewsets.ModelViewSet):serializer_class=RecipeSerializerqueryset=Recipe.objects.all()只需指定serializer_class(序列器类)和queryset(模型查询集),就自动定义好了模型的添加、删除、查询和修改!虽然视图集非常强大,但是如果要实现更加灵活的业务逻辑,那么还是要为每个接口定义单独的视图类才行。

注意在Django路由定义中不包括HTTP方法,具体的HTTP方法可以在视图中读取并判断。

最后一步,我们将core子应用中的路由接入全局路由:

(recipes_app-nV3wuGJ1)$pythonmanage.pyrunserver由于DjangoRESTFramework为我们提供了测试API的Web界面,因此这里就不用Postman等工具进行测试了。用浏览器访问localhost:8000/api/recipes[9],就进入了如下所示的API测试页面:

这个页面的下方还有添加数据(发起POST请求)的表单,我们填一些数据,然后点击POST按钮:

然后再次访问食谱列表页面,就有我们刚刚添加的食谱了!此外,你还可以尝试访问单个食谱的详情页面(例如localhost:8000/api/recipes/1[10]),并且可以通过Web页面直接修改或删除哦!

Django的MTV架构固然优秀,但是随着现在的业务逻辑越来越多地向前端倾斜(也就是现在流行的富前端应用),其中的T(Template)需要更强大的武器来解决,这里就是我们的第二位主角Nuxt。

我们将把所有的前端代码放到client目录中,不过无需自己创建,我们调用nuxt的脚手架来创建前端应用:

$npxcreate-nuxt-appclient之后脚手架应用会询问一系列问题,按下面的截图进行选择(当然作者名填自己):

我们对Nuxt脚手架生成的目录结构稍作讲解。可以看到client目录下有以下子目录:

本项目所用到的图片资源请访问我们的GitHub仓库[11],并下载到对应的目录中。

我们在client/pages中创建index.vue文件,并在其中实现我们的前端首页:

模板(Template)+脚本(Script)+样式(Style),经典的Vue.js组件。

我们刚刚创建了pages目录下的index.vue文件,这意味着当访问根路由/时,这个文件将被访问到。通过npmrundev运行我们的前端页面(记得在client子目录下运行!),可以看到:

真是让人食欲大开!

接下来我们将演示如何展示数据,并实现食谱列表页面。

首先,实现将会在多个页面中反复使用的食谱卡片组件RecipeCard如下:

在这个组件中,我们定义了两个props,分别是recipe(代表食谱对象)和onDelete(删除时的回调函数),并在模板中使用这两个成员。

在实现第二个页面之前,我们有必要先了解一下Nuxt的路由功能——通过pages目录下的文档结构,就可以自动生成vue-router的路由器配置!

例如我们这样安排pages下面的目录结构:

pages├──README.md├──index.vue└──recipes├──_id│├──edit.vue│└──index.vue├──add.vue└──index.vue_id目录(或者其他以单下划线开头的目录或.vue文件)被称作是动态路由(DynamicRouting),可以接受参数作为URL的一部分。上面的pages目录自动生成下面的router:

创建食谱列表页面pages/recipes/index.vue(先使用假数据填充),代码如下:

到这儿,我们分别实现了这个全栈食谱网站的前端和后端应用,这篇教程的第一部分也就结束了。在接下来的教程中,我们将实现前后端之间的通信,并进一步实现食谱的详情及添加页面,不见不散!

想要学习更多精彩的实战技术教程?来图雀社区[13]逛逛吧。

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

localhost:8000/api/recipes:localhost:8000/api/recipes

[10]

localhost:8000/api/recipes/1:localhost:8000/api/recipes/1

THE END
1.学菜谱app排行榜前十名偏玩手游盒子分享十大学菜谱app排行榜前十名手机应用,编辑为您推荐手机学菜谱app排行榜第一名到前5名到前十名的应用。找学菜谱app有哪些、学菜谱app哪个好用,上偏玩手游盒子https://m.pianwan.com/s/zj-561529
2.中国八大菜系菜谱大全app八大菜系经典菜谱app下载八大菜系app可以让你在这里学习粤菜、川菜、鲁菜、淮扬菜、浙菜、闽菜、湘菜、徽菜,海量的菜谱让你从新人小白开始学起,你可以选择喜欢的菜系学习,还可以学习多个菜系,让你感受每个菜系不同的风味。在这些软件中一般都会分类特别详细,你可以根据需求来筛选或者搜索,还为你提供详细的图文菜谱也有的提供视频菜谱,让你分http://www.downcc.com/k/badacaixiapp/
3.Python地方特色降原生态美食分享网站pycharm毕业设计项目中国是文明大国,亦是悠久文化之境地,往往一个地方的美食可以体现出一个地域的传统文化,此网站的设计就是要让人们通过各地的小吃体会各个地区的饮食文化。 (a) 管理员;管理员使用本系统涉到的功能主要有:首页,个人中心,用户管理,外国美食管理,中式美食管理,热门菜品管理,论坛管理,我的收藏管理,留言板管理等功能 (https://blog.csdn.net/qq_3166678367/article/details/144405507
4.在线制作美食投票神器,让你成为美食评选专家美食是人们生活中不可或缺的一部分,每个人都有自己的口味偏好和对各种美食的喜好。为了更好地了解人们对某种美食的评价,进行美食投票成为了一个流行的选项。但是,传统的美食投票需要人工统计,工作量大且效率低下。近年来,在线制作美食投票神器的出现,使得我们可以更加轻松方便地进行美食投票。 在线制作美食投票神器是一http://www.renzushan.com.cn/article/2024121363582.html
5.谷歌新推食谱功能,搜索页面就能留下您搜索引擎知名企业网络谷歌正在测试一项新功能,允许您在第三方网站上查看完整的食谱,无需点击并离开谷歌搜索。 并非只是向您展示您想要的信息的简短片段,凭借新的食谱查看功能,最先由 搜索引擎圆桌会议 发现,您只要将鼠标悬停在链接上就能查看整个食谱。 谷歌发言人布里安娜·达夫(Brianna Duff)称:“我们一直在尝试通过不同的方式,把我们的https://m.163.com/dy/article/JJ6534EJ05568E2R.html
6.输入食材自动出菜谱的网站是什么猪肉和茄子能做成什么菜?黄瓜和牛肉又能做成什么菜?如果你想探索黑暗料理或者钻研出更好吃的菜肴,那就来看看这个输入食材自动生成菜谱的网站吧。 选择食材后能生成菜谱的网站分享 1、打开网站后,选择各类食材和厨具。 2、选择匹配模式。 3、即可查看到菜谱。 https://m.crsky.com/mip/zixun/587299.html
7.买来的菜自动生成菜谱菜肴复制13. 您是否曾经使用过智能菜谱应用或网站? (1)是(2)否 14. 您认为智能菜谱在以下哪些方面对您有帮助?(多选) (1)提供详细的烹饪步骤(2)推荐适合的食材搭配(3)根据现有食材推荐菜谱(4)其他 15. 如果您使用过智能菜谱,请问您最看重哪些功能?(多选) (1)界面美观易用(2)菜谱种类丰富(3)烹饪时长合适(4)食https://www.wjx.cn/xz/282073433.aspx
8.卷王都在用!100款宝藏级AIGC工具分享,强烈建议收藏!!WPS智能写作是金山办公推出的一款帮助用户高效创作的智能写作产品,主要包括四大功能:文本自动生成、辅助初稿写作、句子智能补写、文本智能校对。其文本数据和相关信息来源于权威媒体和政府公开网站,题材覆盖讲话、总结、计划、新闻等多种写作场景,并与金山文档打通,可实现文本云端同步上传,用户在线写作后可以转到金山文档进行https://www.changbiyuan.cn/news/2023/news_0711/69335.html
9.一键生产菜谱软件有哪些零代码企业数字化知识站一键生产菜谱软件有很多,包括Yummly、Mealime、Paprika、Cookpad、BigOven、Forks Over Knives、Plan to Eat、ChefTap、Prepear、MyRecipeBook等。这些软件提供了菜谱推荐、自动生成购物清单、营养信息分析、个性化饮食计划、食材替代建议等功能。Yummly是其中非常受欢迎的一款,它不仅可以根据你的口味、饮食偏好和过敏原推荐https://www.jiandaoyun.com/blog/article/433740/
10.www.jxmzxx.com/appnews/028470.html同时,司法部1956年8月4日颁布《关于冤狱补助费开支问题的答复》:“各级人民法院因错判致使当事人家属生活困难时,可由民政部门予以救济;如果因错判致使当事人遭受大的损失的,根据宪法第97条规定的精神,需要赔偿损失时仍应由司法业务费开支。”除了宪法的原则性规定,民法通则及司法解释也明确了国家赔偿责任。1987年1http://www.jxmzxx.com/appnews/028470.html
11.系统需求规格说明书(全文)菜 谱菜谱数据2.12.2点菜单生成点菜单2.3打印点菜单顾客点菜点菜单厨师点菜记录记菜录点点菜信息 3、厨师制作 3.1菜品分类3.2制作菜品3.3出菜话单点菜单厨 师点菜单出菜出菜记录出菜记录记录 4、上菜划单 4.14.2生成上菜单传菜员上菜划单上菜上菜上菜记录 记录记录 5、上菜 点菜记录顾客点菜记录5.1 上菜 上菜记录https://www.99xueshu.com/w/fft15ae99707.html
12.菜单自动生成的做法步骤图,怎么做好吃平湖旧家0人做过这道菜 平湖旧家 https://www.xiachufang.com/page/market/2311/ 用料 自行输入食材 菜单自动生成的做法 自动生成菜单 同上 喜欢菜单自动生成的也喜欢 破壁机养生食谱 Timmy么血16 做过 土家鲜肉饼制作 天马星空m1 做过 鲜掉眉毛!咸蛋黄鲜虾豆腐|天冷煮一锅,暖胃又舒心 https://www.xiachufang.com/recipe/107285725/
13.隔离食用手册AboutPPT导航自己选食材与厨具,自动生成对应菜谱的有趣网站,点击菜谱可以直达对应的做菜视频教程 数据统计 数据评估 隔离食用手册浏览人数已经达到3,954,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:隔离食用手册的访问速https://www.aboutppt.com/sites/84954.html
14.ai做菜单图片ai智能自动生成菜单菜谱创客贴ai自动制作菜单图片,无需任何专业技能,多种设计风格,输入美食关键词,即可ai智能生成菜单菜谱,高档菜单一键拥有。https://www.chuangkit.com/adlp2/280.html
15.食谱自动生成APP推荐食谱自动生成下载这款智能应用程序能够根据您的个人喜好和健康需求,为您自动生成营养均衡的食谱,让您轻松享受美味健康的餐饮生活。您只需填写一些基本信息,如食材偏好、饮食习惯等,即可获得专业的营养师推荐的食谱,让您每天的饮食更加多样化和科学化。无论您是想减肥、增肌还是保持健康,这款app都能为您提供个性化的饮食建议和菜谱,让https://www.wandoujia.com/bangdan/1243578/
16.如何三步做好YouTube关键词研究如果这种手工的过程对你来说很难的话,有一个小诀窍,就是使用通用符命令(*)来获取YouTube自动推荐的(关键词延伸)。举个例子,我们可以搜索 Sam-sung Galaxy S* 来找到更多的相关型号。 第二步:生成关键词并查找其搜索量 接下来,使用关键词研究工具找出人们正在搜索与你话题有关的那些东西。 https://cifshanghai.com/?p=10204
17.在线AI写作软件带你看见无限可能!小明是一个经营餐厅的人,他需要为自己的菜单编写描述。他通过使用未来写作利器,只需简单输入菜品的名称和主要食材,软件将会自动生成各种精彩的菜品描述。这不仅节省了小明的时间,因为他不再需要大量查阅菜谱和花费大量精力来想象菜品风味,而且还使他的菜单更有吸引力,增加了顾客的兴趣和购买欲望。https://108ai.com/post/1654.html
18.取码网6微信聊天内容制作生成器微信小程序源码_支持多种制作生成 (99+) 7V8版本京东淘宝自动抢单系统源码/利息宝/会员开通/全开-附视频教程 (99+) 8菜谱微信小程序源码云开发菜谱微信小程序源码 (99+) 精品源码 > 好的东西值得描述内容 1【永和首页代理v6.5.0】功能模块+自适应运营版+永和软件+专业品牌网站建设+蘑菇https://qumaw.com/