全栈“食”代:用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.基于python的降美食菜谱分享网站微信小程序(4)数据库表设计简单,各表之间联系直观清晰明了。 (5)界面布局设计简洁合理,能够让用户具有更加流畅且愉悦的体验。 Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式: https://blog.csdn.net/qq840612233/article/details/143882376
2.美食杰数据库精选美食数据探索口味世界的宝库总之,“美食杰数据库”以其庞大的资源库和先进技术,不仅让我们的生活更加便捷,也为那些追求更深层次了解世界各地佳肴文化的人们提供了一扇窗户,让他们能够真正触摸到来自世界各地不同的风土人情。而这种通过数字科技去探索口味世界,无疑是现代人的又一次视觉盛宴。https://www.dhrmkewmy.cn/cai-pu/355662.html
3.膳食菜谱广州市广外附设外语学校https://www.gwdwx.com/m/info/index.aspx?m=142002
4.食品文库食品文档的在线分享平台食品伙伴网2024-11-25 超临界CO2萃取联合超声处理对凡纳滨对虾虾头油脂提取效果的影响 2024-11-25 基于电子鼻、电子舌技术的荣昌猪肉及其制品贮藏过程新鲜度检测研究 2024-11-25 低压静电场处理对双孢蘑菇采后贮藏品质的影响 2024-11-11 不同温度下冻藏对青鱼品质的影响研究 2024-11-11 基于HS-GC-MS和电子感官技术http://wenku.foodmate.net/myindex/index.php?userid=306277
5.基于PHP+MySQL菜品食谱美食网站的设计与实现美食网站后台登录页面 美食信息添加界面 管理员添加美食信息是在点击添加按钮的前提下操作的,当页面跳转至meishixinxi_add.php,添加成功后,管理员在meishixinxi_list.php进行美食信息管理,meishixinxi_ list.php通过查询数据库的美食信息表列出所有美食信息,每条美食信息对应一个删除按钮和修改按钮,当管理员点击删除按钮https://blog.51cto.com/u_15295483/3004587
6.ModuleSqlAlchemy使用手册可见,ORM就是把数据库表的行与相应的对象建立关联,互相转换。 setp4:ORM的外键关联--relationship(向外连接),ForeignKey(连接主键)由于关系数据库的多个表还可以用外键实现一对多、多对多等关联,相应地,ORM框架也可以提供两个对象之间的一对多、多对多等功能。 https://www.jianshu.com/p/a4593865a28d
7.饮食Excel表格模板饮食Excel表格模板下载个人饮食计划每周食谱表excel模板 979126 紫色简约健身计划表运动日志饮食日志excel模版 1558 个人饮食计划每周食谱表excel表格模板 13338 餐饮食材成本核算表excel模板 1366 周饮食计划表Excel模板 8218 周饮食计划表excel表模板 394 减肥饮食记录表Excel模板 216 https://www.tukuppt.com/excelmuban/yinshi.html
8.菜谱数据库菜谱数据库,表字段包括:菜谱ID、菜谱分类编号、菜谱名称、做法、特点、调料、原料等,共计5000条数据,格式为微软Acess数据库的mdb格式,可自行进行转换。数据仅可用作测试展示学习等,不可用于商业用途。 上传者:weixin_41471128时间:2021-07-11 【Python数据科学】【3.11.3】【食谱数据库】食谱数据下载 https://www.iteye.com/resource/ribss-7677573
9.角色分为数据库角色和表角色。()某中学为学生制定的农村义务教育阶段学生营养餐食谱如表,从营养学的角度考虑,建议学校再增加的食物为( ) 主食 米饭 副食 花生米、清蒸鱼、炒牛肉 饮料 牛奶检索图书信息的数据库是 A.维普《中文科技期刊数据库》 B.万方数据资源系统 C.人大复印报刊资料全文数据库 D.超星数字图书馆 查看题目与https://www.shuashuati.com/ti/83cccfe5e4a544bfb2769823c1030477.html
10.关于网站方案范文十篇1、新闻网站建站费用的初步预算,根据新闻网站的规模、建站的目的、上级的批准而定。 2、器材与设备的添置,以及其他耗材的更新与替换,也需根据上级的批准而定。 78新闻网站维护 1、服务器及相关软硬件的维护,对可能出现的问题进行评估,制定响应时间。 2、数据库维护,有效地利用数据是网站维护的重要内容,因此数据库的https://m.wenshubang.com/fangan/1561577.html
11.EatThisMuch:基于数据的降食谱网站能有多大的想象空间?Eat This Much能够根据用户的身体数据、身体目标(减肥、塑形、保持身材)、饮食习惯等参数来为用户进行定制化的每日食谱推荐,反过来,购物时间、预算和食材类别等数据也能让Eat This Much在商业模式上拥有更广泛的想象空间。 “吃什么?”几乎是每个人每天都必须考虑的问题,由于人们的权衡标准千差万别,所以美食和食谱类的https://www.pingwest.com/a/14949
12.食源性疾病预防预案(精选14篇)收集和整理了包括传染病、食源性疾病等在内的50多种疫情调查表, 将这些调查表全部电子化;同时, 建立了包括所有调查表信息在内的数据库, 运用该数据库可以根据疫情现场特点自定义生成疫情调查表。 1.1.2 食源性疾病数据库 通过查阅文献、专著、权威网站及国内外相关数据库[3,4,5,6], 收集了国内最全的食源性疾病https://www.360wenmi.com/f/filex0w8gdic.html
13.菜谱食谱大全下载SQL,XLSX,JSON数据格式:SQL,XLSX,JSON 数据来源:- 数据价格:499.00元 立即购买 数据源下载 数据源介绍: 提供不同场合、季节、年龄段、菜系等食谱,配料食材详尽、操作步骤详细,轻松烹饪各类美食。 注:图片来源于网络,不可进行商用 数据源下载列表: 全部 JSON XLSX SQL http://wapi.cn/source/14.html
14.关于医疗卫生信息系统建设方案建议书6篇(全文)(五)提供数据结构及数据库表说明,帮助培训系统维护人员不少于2名,满足日常系统维护需求,培训相关费用由商家承担。 五、功能要求 (一)婚前保健服务管理子系统 1.能对男/女婚前体检信息进行登记,修改,查询。2.具备个案信息分阶段录入功能。3.能打印婚检体检表和婚检证明。 https://www.99xueshu.com/w/filer5f4432r.html
15.食谱:蜘蛛蛋糕物品NGA178魔兽世界数据库NGA/178魔兽世界数据库,魔兽世界更新最快、最权威的中文数据库,内有魔兽世界资料搜索引擎,服务器人口速查,详尽的副本掉落,专业技能列表,阵营声望,特有头衔列表,装备对比,论坛功能整合等内容。欢迎来到NGA/178魔兽数据库!http://db.178.com/wow/cn/item/3683.html
16.3DM攻略站《符文工房5》数据库(包含“武器”“防具”“材料本攻略为《符文工房5》主体攻略的数据库部分,主要包含“武器”“防具”“材料”“魔物”“食谱”“炼金https://bbs.3dmgame.com/thread-6320446-1-1.html