基于Django的商城开发项目笔记(七)

二十一、支付宝规则及支付流程

21.1网站与支付宝平台交互的原理:

21.2用户、网站、支付宝平台交互实现支付流程:

21.3支付宝开放平台的使用:

21.3.1登录:使用已有的支付宝账号即可

                    https://open.alipay.com/platform/home.htm

扫描二维码关注公众号,回复: 6095714 查看本文章

21.3.2使用python工具包:    # 安装python-alipay-sdk

                                             pip install python-alipay-sdk --upgrade

21.3.3生成密钥文件:openssl

                                 OpenSSL> genrsa -out app_private_key.pem   2048  # 私钥

                                 OpenSSL> rsa -in app_private_key.pem -pubout -out app_public_key.pem # 导出公钥

                                 OpenSSL> exit

                                 cat app_publict_key.pem 查看公钥的内容

21.3.4将生成的本机的公钥保存到支付宝平台中:

21.3.5下载支付宝的公钥文件:

将公钥的内容复制保存到一个文本文件中(alipay_pubilc_key.pem),注意需要在文本的首尾添加标记位(-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----)

21.3.6将刚刚生成的私钥app_private_key.pem和支付宝公钥alipay_public_key.pem放到我们的项目目录中:

21.3.7在orders/urls.py中配置支付宝支付和支付结果查询的url:

21.3.8在orders/view.py中编写OrderPayView订单支付类:

    

21.3.9在orders/view.py中编写CheckPayView查询订单支付结果类:

      

    

21.3.10在templates/user_center_order.html中配置:

21.4支付成功后的评论功能:

21.4.1在order/urls.py中配置评论的url:

21.4.2在order/view.py中定义CommentView类:

   

     

21.4.3在templates/user_center_order.html中添加判断,当订单状态为待评价跳转到评论页面:

21.4.4在templates/order_comment.html中显示信息:

二十二、项目部署流程

22.1项目部署流程图:

22.2 uwsgi:遵循wsgi协议的web服务器。

22.3uwsgi的安装:pip install uwsgi

22.4uwsgi的配置:

22.4.1项目部署时,需要把settings.py文件夹下的:

                                DEBUG=FALSE

                                ALLOWED_HOSTS=[‘*’]

22.4.2在项目目录下新建一个uwsgi.ini文件:

22.4.3uwsgi的启动和停止:

                                            启动:uwsgi –-ini 配置文件路径 例如:uwsgi –-ini uwsgi.ini

                                            停止:uwsgi --stop uwsgi.pid路径 例如:uwsgi –-stop uwsgi.pid

22.5配置nginx来实现调度和转发请求:

22.5.1 nginx 配置转发请求给uwsgi

22.5.1.1修改nginx.conf文件:

                             location / {

                                                        # 包含uwsgi请求的参数

                                                        include uwsgi_params;

                                                        # 转交请求给uwsgi

                                                        #uwsgi_pass 127.0.0.1:8080;

                                                        uwsgi_pass dailyfresh;

                                            }

22.5.2nginx配置处理静态文件:

22.5.2.1django settings.py中配置收集静态文件路径:

            STATIC_ROOT=收集的静态文件路径 例如:/var/www/dailyfresh/static;

            django 收集静态文件的命令:

                        python manage.py collectstatic

            执行上面的命令会把项目中所使用的静态文件收集到STATIC_ROOT指定的目录下。

22.5.2.2修改nginx.conf配置文件:

                            location /static {

                                                        # 指定静态文件存放的目录

                                                        alias /var/www/dailyfresh/static/;    

                             }

22.5.3 nginx配置upstream实现负载均衡:

                             upstream dailyfresh {

                                                        server 127.0.0.1:8080;

                                                        server 127.0.0.1:8081;

                              }

猜你喜欢

转载自blog.csdn.net/qq_40652101/article/details/89412699