这个是一个全栈的项目,麻雀虽小,五脏俱全!
介绍
全程都是利用gpt4进行辅助编程搞定的。第一版其实非常快,大概30分钟就搞定了,后续就是不断的添砖加瓦,增加功能和优化UI。
其实很多小白都在说要学Python,也想学Python,但是基本买了一本厚厚的书或者拿了一份资料之后就,开始啃,结果不到3周从入门到放弃,原因很简单,没有动力,也没有兴趣,一开始的激情就这样被几周消磨殆尽了!
那么学习Python最好的方式是什么,就是实战!实战!实战!
你会把新华字典全部看完,再写作文吗?学习编程也是这样的,只要大概了解一下基本的语法就可以开始动手练习!然后在实战的过程不断学习,吸取知识!其实小伙伴都想做一个全栈的项目,现在有了gpt4可以非常方便的帮你搞定,而且是一个价格非常非常便宜的24小时服务没有怨言的老师。
1. 整个代码的框架
下面是我们整个代码的框架,是非常适合一个初学者练手的一个小项目,而且很有趣的。为了简单,容易上手,我们整个的开发都选择的兵器都是轻量级的,好上手的,因为我们本身就是开发的一个小的应用,杀鸡不需要牛刀。
1.1. 前端:前端3架马车是必须的,html+css+JS ,然后整个UI的框架我们选择bootstrap,这个框架也是非常有名的,很多网站都是用它来做UI。
1.2. 后端:后端的框架也有很多可以选择,比如Flask,Django,FastAPI,Tornado(其中FastAPI的性能比较高,类似有点像Go).然后里面最有名的就是Flask和Django 二者又有千秋,如果小站快速开发,首选flask 它是非常轻量级的。Django是企业级开发的,功能很全。后面会员群我们讲Python高级开发的时候会对这些框架进行深入介绍。这里我们选flask,因为我们这个网站算是很小的应用。
1.3. 数据库:我这里选了2个数据库,为啥会选2个。原因是因为我们有页面之间的存储的数据临时需求,用redis这个内存数据库非常快而且很方便,而且使用起来也和简单。那为啥要用sqlite3,原因是因为我们要在页面增加一个历史查询记录的功能,如果我们的网站服务器重启了,或者程序reboot了,那么内存的数据库的数据就全部丢了。但是用sqlite3可以很好的解决这个问题,这个是持久数据库(比起mysql,mongodb,sqlite3算是很轻量的适合小白上手)。
1.4. 服务器部署:一般都是用gunicorn+nginx来配合使用的。
gunicorn是干嘛呢:
简单说提高网站的并发性能,它是一个Python WSGI HTTP服务器,用于服务Python Web应用。WSGI(Web Server Gateway Interface)是Python中用于链接Web服务器和Web应用的标准接口。
通常情况下,你可能会在开发环境中使用Flask或Django自带的服务器来运行你的Web应用,但在生产环境中,这样做可能会有性能问题。
Gunicorn就是为生产环境设计的,它能够处理更多的并发请求,并且能够与其他常见的Web服务器软件(例如Nginx)配合使用。
Gunicorn的工作原理是创建一个或多个工作进程(worker process),每个进程都可以独立地处理HTTP请求。通过这种方式,Gunicorn可以充分利用多核CPU的性能,处理大量的并发请求。
那nginx干嘛呢:
高性能的HTTP服务器和反向代理服务器,nginx可以作为一个web服务器运行,处理HTTP请求并返回静态文件(例如HTML、CSS、JavaScript、图片等)。Nginx可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器(例如Gunicorn、uWSGI等),然后将应用服务器的响应返回给客户端。在这种配置中,Nginx可以提供负载均衡和高可用性。
2. 整个网站的业务逻辑图
说完了上面的技术栈之后,我们来说一下整个网站的技术逻辑图,就是在业务上是怎么跑的,逻辑上的单元模块是怎么样的。
用户点击网页,然后开始输入数据之后,就会提交表单到后端,后端的flask框架会进行路由获取用户的数据,然后我们会对数据进行清洗和组装,然后把数据发送给chatgpt。
这里我们用的是api请求的方式发给chatgpt ,然后我们拿到的chatgpt resp之后把数据结构解析,然后获取起名的内容,最后动态渲染前端网页的模版。
整个的流程就是这样的,其实很多网站都是干这样的事情,业内人士说的对数据库的增删改查,我们这里也有数据库。上面两个数据库,一个是内存数据库redis,一个是sqlit3都是用来查询数据的,只是用法不一样,我会在后端篇详细解释一下。