Django项目--阿雷影视


由于工作需要,技术发展,博主认识到了传统的C/S将会被B/S取代,近期苦学Django,购买了一些书籍。本次运用自己所学写了个小的电影网站,主要用于展示电影信息,撰写此篇记录一下开发过程。

一.环境

1.开发环境

  1. Windows10 专业版
  2. Python3.8
  3. Django 3.2.15
  4. PyCharm 2018.2.2 x64
  5. 代码托管平台:码云(Gitee)
  6. MySQL-8.0.23
  7. Navicat 15 for MySQL
  8. Redis-4.0.10(Linux)

2.线上环境

  1. CentOS7.6
  2. MySQL-5.7
  3. Redis-4.0.10
  4. Nginx-1.20.2
  5. Python3.8
  6. Django 3.2.15

二.主要技术

1.Django

由于博主主要使用Python语言进行开发,遂选择了Django用作后端开发主要框架。

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。2019年12月2日,Django 3. 0发布。–摘自百度

在这里插入图片描述

2.MySQL

本次数据量不是很大,选择了主流的关系型数据库MySQL,数据表主要有:电影表、用户个人信息表、用户建议信息表…数据库可视化管理工具为Navicat 15 for MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。–摘自百度

在这里插入图片描述

3.Redis

本项目的一些缓存数据以及二维码校验数据均存储在Redis中,本次主要使用Redis的数据类型为哈希(hash)。

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。–摘自菜鸟教程

在这里插入图片描述

4.Nginx

由于本项目最终部署到本地虚拟机CentOS服务器上,虽然说是用作测试,但是我们仍然需要一个可以稳定而持续的服务器,所以选择了在服务器上部署Nginx+uwsgi,使用反向代理可以做到“动静分离”、“反向代理”、以及隐藏掉真实的服务器端口…这里介绍一下Nginx。

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。–摘自百度

在这里插入图片描述

5.uwsgi

先介绍一下WSGI:

1.WSGI

全称 Python Web Server Gateway Interface,指定了web服务器和Python web应用或web框架之间的标准接口,以提高web应用在一系列web服务器间的移植性。–摘自百度

在这里插入图片描述

2.uwsgi

与WSGI一样是uWSGI通信的一种协议,用于定义传输信息类型(type of information)。每一个uwsgi packet前4byte为传输信息类型的描述,与WSGI协议是两种东西,据说是fcgi协议的10倍快。
它是一个全功能的http服务器,实现了WSGI规范、uwsgi协议、http协议等。它要做的就是把http协议转化为语言支持的网络协议。比如把http协议转化成WSGI规范,让python可以直接使用。

6.Bootstrap

本次页面的设计基于HTML5,前端主要使用jQuery、Bootstrap,使用Bootstrap可以帮助我们快速创建我们想要的前端页面。

Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。

在这里插入图片描述

三.整体架构

1.实现功能

请添加图片描述

2.技术架构

在这里插入图片描述

四.项目展示

1.电影

1.首页

在这里插入图片描述

2.搜索页

在这里插入图片描述

3.专题页

在这里插入图片描述

3.专题页

在这里插入图片描述

2.登录

1.登录-账密

在这里插入图片描述

2.登录-扫码

PS:本次真实模拟了扫码登录的逻辑。
在这里插入图片描述

3.建议反馈

在这里插入图片描述

4.个人中心-基本信息

成功登录之后可以收藏电影、提交建议、查看个人信息。
在这里插入图片描述

5.个人中心-我的收藏-全部

在这里插入图片描述

6.个人中心-我的收藏-按类别

在这里插入图片描述

五.技术心得

1.扫码登录

因为博主之前研究过b站的扫码登录逻辑,所以本次使用Redis配合Django实现相关登录信息的记录、认证,大致思路如下图:

在这里插入图片描述

六.一些配置&脚本

1.requirements

在这里插入图片描述

2.nginx.conf

worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 81;
server_name localhost;
root /home/myProjects/django_projects/movie_god;
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost:8081;
}
location /static
{
alias /home/myProjects/django_projects/movie_god/static;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

3.start.sh

sudo /usr/bin/uwsgi /home/myProjects/django_projects/movie_god/uwsgi.ini --plugin python3 --wsgi-file /home/myProjects/django_projects/movie_god/uwsgi.py&

4.kill.sh

pid=ps -ef|grep uwsgi|grep ini|grep movie_god|awk ‘{print $2}’ sudo kill -9 $pid

七.总结

本次使用Django开发了一个很小的电影项目,我愿称之为阿雷影视,练习了Django的MVT架构,也学习到了一些前端后端的相关技术。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值