全栈“食”代:用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.把我这辈子做得最好的40道菜谱分享给大家,每一道菜都非常美味!分享 热搜 曝山东一对情侣吵架后跳河身亡 42岁coser妈妈抗癌成功 男子发现离世父亲竟有3个私生子女 普京:有足够的榛树系统将无需核武 官方通报医院食堂被指销售馊米饭 成都通报男子持剪刀乱挥 目前还没有跟贴,欢迎您发表观点 打开APP发贴 0条跟贴 相关https://m.163.com/dy/article/JIQ7J69P05568JTI.html
2.挑战一星期不重复的六道低卡掉秤餐,最后一来自厨艺教程厨艺教程 24-12-6 09:04 发布于 四川 来自 iPhone客户端 挑战一星期不重复的六道低卡掉秤餐,最后一道能瘦十斤!#厨艺教程##掉秤餐##低卡餐# L厨艺教程的微博视频 小窗口 ?收藏 102 27 ?126 评论 o p 同时转发到我的微博 按热度 按时间 正在加载,请稍候 美食https://weibo.com/3631716821/5108509580724908
3.烹饪大神的超级食谱从简单到复杂吃出笑声厨师菜谱大全,是由一群经验丰富、热情好客的大厨精心挑选出来的一系列经典佳肴。它包含了从简单到复杂,从传统到现代各式各样的食谱,让你在家中也能体验到专业餐厅那样的美味。 二、如何选择适合自己的菜谱 选择适合自己口味和能力水平的菜谱,是使用厨师菜谱大全成功关键所在。你可以根据自己的喜好来选择,如果喜欢重口味https://www.smfnh865.cn/zi-xun/904280.html
4.宝子们,81道新手家常菜谱厨艺飞仙1如果你完全没有做菜经验,可以下载收藏慢慢学习~也可以艾特那个你关心的人让TA学起来~ 1.辣椒炒肉(基本功) 2.青椒炒蛋(基本功) 3.农家一碗香(二合一) 4.花菜炒五花肉(出品稳定) 5.肉沫炒蒜苔(味道好) 6.笋干炒肉(口感佳) 7.酱香鸡蛋(酱汁:2勺生抽+1勺香醋+1勺蚝油+半勺白糖+1勺辣椒面+1勺淀粉 +半https://m.dewu.com/note/trend/details?id=253816734
5.拉拉炒菜技巧拉拉炒菜是一种中式烹饪技法,需要比较高的技巧和火候控制能力。以下是一些炒菜技巧供您参考:1、选择好锅:拉拉炒菜需要使用平底不粘锅,锅底要薄、锅沿要高,锅底直径一般不要超过30厘米。锅的大小要根据用途和食材选取,并且锅面要干燥无水渍。2、火候掌握:拉拉炒菜需要使用大火,但是热度不能过高,一般建议在锅内到达7https://wen.baidu.com/question/1743302259174023747.html
6.美食教程排行榜前十名APP推荐美食教程排行榜前十名下载豌豆荚美食教程排行榜前十名榜单为您提供最新美食教程排行榜前十名大全,这里不仅有美食教程排行榜前十名安卓版本APP、历史版本应用下载资源,还有类似美食教程排行榜前十名的应用推荐,欢迎大家前来豌豆荚下载。https://www.wandoujia.com/bangdan/569225/
7.houdinipdg笔记houdinipdg流程关于本教程 在Houdini 中,你可以使用 TOP节点 生成 work item来为你做任务或存储信息。使用 TOP 节点网络,你可以创建一个有伸缩性的“菜谱”来生成 work item ,在本地或农场上运行它们,并在所有 work item 之间建立依赖关系网络,然后找出尽可能高效完成所有工作的方法。而这个“菜谱”称为 PDG。 https://blog.51cto.com/u_16213667/10902123
8.烤箱美食食谱烤箱美食食谱大全实拍好货优评TOP5 精选好评商品,看实拍图,放心买好货! 零失败烤箱菜谱 烤箱食谱烤箱美食烘焙书烤箱食谱大全美食菜谱烘焙书籍教程大全家常菜家常菜谱家常菜谱大 京东价 : 100% 好评度 买家印象: 这本书太好了,内容全面,介绍详细,图片靓丽!在家按照上面介绍的做方便快捷!而且花样种类繁多太好了,京东物流专业迅速,快递小哥https://yp.jd.com/1713c2ecd1ca9a76bf55.html
9.腌青芒果的做法腌青芒果怎么做海南特色腌青芒果海贼TOP海南特色腌青芒果 海南人独爱辣椒盐,吃什么水果都喜欢撒点盐。 吃西瓜也会撒点辣椒盐,吃起来会更甜。 这是一种海南文化! 虽然海南人不用看教程也懂弄, 外地人看了买不到海南的辣椒酱弄出来也不好吃, 但是如果看过这个做法,以后有机会来海南可以屯点辣椒酱回去自己弄嘛!https://m.meishichina.com/recipeshow/173527/
10.拉拉深夜食堂菜谱(下厨房)拉拉深夜食堂菜谱来自lalarebecca 焼きそば(日式酱油炒面) 萤蔺 8.1 综合评分 (1140 人做过) 《深夜食堂》炸豆腐 Aenbiarshy 7 人做过 日式茶碗蒸 橙小酱 7.3 综合评分 (370 人做过) 青梅酒(优的春日私酿第二話) Yuka-清水优香 8.3 综合评分 (1051 人做过) 《深夜食堂》土豆沙拉 rosingsing 7.8http://mip.xiachufang.com/recipe_list/106644816/
11.www.lapierrebikes.com.cn/xxxr62300658/748824中国星网雄安总部项目是雄安新区首家执行政府帮办机制的央企项目,于2022年6月正式开工,历时两年多,于2024年9月23日顺利完成竣工验收,预计10月正式投入使用。(完) 责任编辑:周驰 梁王水灵灵地杀死了采访 据测算,红沿河核能供暖项目投产后每年将减少标煤消耗5726吨,减排二氧化碳1.41万吨、烟尘209余吨、二氧化硫60余吨http://www.lapierrebikes.com.cn/xxxr62300658/748824
12.web.yjsuoj.com/nodenews/720573.htm中国三级片XXXXWWWw 781map.top 北条麻妃porn 亚洲欧美瑟瑟 客厅里YING乱 两性动态图 美国三级穿黄裙子的动物不穿袜子吗黄花红花 山村共妻(H) 人妻可以免费看黄的软件 自w到高c的50种图片教程视频 黄色网站女上位摇奶 北条麻妃先锋在线 骚逼对操骚逼同性爱视频 校花下面又软又进禁视频 肚子装不http://web.yjsuoj.com/nodenews/720573.htm
13.《微信小程序开发图解案例教程》教学教案.docx第2章 微信小程序框架分析课程名称微信小程序开发图解案例教程项目名称微信小程序框架分析任务名称仿香哈菜谱微信小程序课时 2 项目性质□演示性 □验证性 √设计性 □综合性授课班级授课日期授课地点教学目标制作仿香哈菜谱微信小程序教学内容(1)底部标签导航设计(2)宫格导航设计(3)香哈头条初始化数据(4)香哈头条https://max.book118.com/html/2022/0713/8060042071004117.shtm
14.web前端期末大作业大学美食菜谱网页制作教程(web前端网页制作课DOCTYPEHTML>美食网首页饮食文化美食分类用户注册用户登录用户留言https://blog.csdn.net/m0_46321522/article/details/134870564
15.十大美食网站排行教做饭的网站哪个好在线学做菜的网站推荐→本文中买购小编为大家分享十大美食网站,包括美食天下、美食杰、豆果美食,以及大厨艺、下厨房、美食家、香哈菜谱、乐做菜等。这些美食网站能提供较为详细的做菜教程,包括食材准备、烹饪时长、操作步骤等。一起来看看。 01 美食天下 91.5 02 美食杰 90.5 03 豆果美食 88.9 04 大厨艺 87.3 05 下厨房 85.7 https://m.maigoo.com/top/434550.html
16.餐厅游戏经营类汉化版推荐2023人气最高的餐厅经营手游top5这是一家擅长制作中式料理的餐厅,在这个餐厅里面,玩家会看到各种各样的中式菜谱。需要制定相应的菜谱,并根据顾客们的需求来制作各种各样的中式美食,从而让顾客们满意。当然,玩家还要时不时进行店铺的推广,这个时候就可以招募一些明星来为自己加持,让店铺更具流量。最终让自己的餐厅成为家喻户晓的超级中餐厅。 https://a.9game.cn/news/7635979.html
17.家常菜做法大全TOP榜精选菜单家常菜做法大全TOP榜 家常菜是我们平时吃的最多的菜类,也是家庭日常制作食用的菜肴,家常菜,是中菜的源头,也是地方风味菜系的组成基础。家庭利用现有的调味品也可以炒制出的菜肴。 夏天要吃些清淡的食物,甜品可以是绿豆海带汤、八宝粥、银耳百合汤等;汤可以是:老鸭冬瓜海带汤、鱼头豆腐紫菜汤、草菇肉末汤等;小菜https://m.xiangha.com/caipu/caidan/222-11/
18.美食教程app排行榜前十名偏玩手游盒子分享十大美食教程app排行榜前十名手机应用,编辑为您推荐手机美食教程app排行榜第一名到前5名到前十名的应用。找美食教程app有哪些、美食教程app哪个好用,上偏玩手游盒子https://m.pianwan.com/s/zj-1744769
19.菜谱类app竞品分析报告整体上讲,这三款菜谱app的付费课程大体相同,主要包含视频课程和电子书两大方面。目前,只有下厨房和豆果美食视频课程和电子书的付费内容都有,但香哈菜谱付费知识只有视频教程部分,并没有电子书。 (5)社交功能 对于社区活动来说,用户可以选择上传菜谱或作品、转发、评论、点赞等,并且三种app都在首页设置了“关注动态”https://www.jianshu.com/p/7285f39269da
20.学做菜的app排行榜前十名十大免费学做菜软件app推荐现在爱好下厨房自己动手做菜的人群越来越多,而想要学做菜的人们面对着繁多的食材可能无法快速下手,而一款好用的做菜app可以更具食材快速搜索到想做的菜的详细做法,而菜谱app就成了家里面做饭的主要工具,这里小编给大家带来了学做菜软件app排行榜https://www.ddooo.com/zt/zcrj.htm
21.教做饭做菜的最好软件排行榜香哈菜谱App是一款被誉为小白必备的移动菜谱大全,这款菜谱收录了全国各地的家常菜做法,从图文教程到在线视频,应有尽有,只要你想学,没有不会做的菜,对做菜感兴趣的用户赶快下载这款香哈 食谱实用做饭菜谱美食教学家常菜谱经典菜谱美食菜谱 6 家乐食谱 https://www.yxwoo.com/top/168/
22.使用nodejs实现一个简单的网页爬虫功能(附代码)js教程团购银行军事房产股票基金天气菜谱汽车地图招聘儿童母婴健康大学手机 其他类别 软件邮箱微博公益宠物杀毒设计电脑桌面行业摄影英语https://www.php.cn/faq/470615.html
23.脆爽拉拉菜的做法菜谱脆爽拉拉菜的做法,豆果美食为您提供脆爽拉拉菜的做法图文步骤,了解脆爽拉拉菜所需食材,掌握脆爽拉拉菜的做法技巧,让您轻松做出脆爽拉拉菜。https://m.douguo.com/recipe/mip/3217699