精华内容
下载资源
问答
  • Django电商项目(十)项目部署、项目总结
    2021-10-21 13:55:11

    项目部署

    uwsgi

    遵循wsgi协议的web服务器。

    uwsgi的安装

    pip install uwsgi

    uwsgi的配置

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

    DEBUG=FALSE
    ALLOWED_HOSTS=[‘*’] 
    

    项目目录下新建uwsgi.ini

    [uwsgi]
    #使用nginx连接时使用
    socket=127.0.0.1:8080
    #直接做web服务器使用 python manage.py runserver ip:port
    #http=127.0.0.1:8080
    #项目目录
    chdir=/Users/smart/Desktop/dj/bj18/dailyfresh
    #项目中wsgi.py文件的目录,相对于项目目录
    wsgi-file=dailyfresh/wsgi.py
    #指定启动的工作进程数
    processes=4
    #指定工作进程中的线程数
    threads=2
    master=True
    #保存启动之后主进程的pid
    pidfile=uwsgi.pid
    #设置uwsgi后台运行,uwsgi.log保存日志信息
    daemonize=uwsgi.log
    #设置虚拟环境的路径
    virtualenv=/Users/smart/.virtualenvs/dailyfresh
    

    uwsgi的启动和停止

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

    nginx

    nginx 配置转发请求给uwsgi

    在这里插入图片描述

    在这里插入图片描述

    location / {
    	include uwsgi_params;
    	uwsgi_pass uwsgi服务器的ip:port;
    }
    

    nginx配置处理静态文件

    django settings.py中配置收集静态文件路径:
    STATIC_ROOT=收集的静态文件路径 例如:/var/www/dailyfresh/static;

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

    收集完静态文件之后,让nginx提供静态文件,需要在nginx配置文件中增加如下配置:

    location /static {
    	alias /var/www/dailyfresh/static/;
    }
    

    nginx转发请求给另外地址

    在location 对应的配置项中增加 proxy_pass 转发的服务器地址。
    如当用户访问127.0.0.1时,在nginx中配置把这个请求转发给172.16.179.131:80(nginx)服务器,让这台服务器提供静态首页。
    配置如下:

    location = /{
    	proxy_pass http://172.16.179.131;
    }
    

    nginx配置upstream实现负载均衡

    新建uwsgi2.ini
    在这里插入图片描述启动
    在这里插入图片描述

    ngnix 配置负载均衡时,在server配置的前面增加upstream配置项。

    upstream dailyfresh {
    	server 127.0.0.1:8080;
    	server 127.0.0.1:8081;
    }
    

    重启服务器
    sudo sbin/nginx -s reload

    部署项目流程图

    在这里插入图片描述

    项目总结

    1. 生鲜类产品 B2C PC电脑端网页
    2. 功能模块:用户模块 商品模块(首页、 搜索、商品) 购物车模块 订单模块(下单、 支付)
    3. 用户模块:==注册、登录、激活、退出、==个人中心、地址
    4. 商品模块:首页、详情、列表、搜索(haystack+whoosh)
    5. 购物车: 增加、删除、修改、查询
    6. 订单模块:确认订单页面、提交订单(下单)、请求支付、查询支付结果、评论
    7. django默认的认证系统 AbstractUser
    8. itsdangerous 生成签名的token (序列化工具 dumps loads)
    9. 邮件 (django提供邮件支持 配置参数 send_mail)
    10. celery (重点 整体认识 异步任务)
    11. 页面静态化 (缓解压力 celery nginx)
    12. 缓存(缓解压力, 保存的位置、有效期、与数据库的一致性问题)
    13. FastDFS (分布式的图片存储服务, 修改了django的默认文件存储系统)
    14. 搜索( whoosh 索引 分词)
    15. 购物车 redis 哈希 历史记录redis list
    16. ajax 前端用ajax请求后端接口
    17. 事务
    18. 高并发的库存问题 (悲观锁、乐观锁
    19. 支付的使用流程
    20. nginx (负载均衡 提供静态文件)
    更多相关内容
  • python+django框架+mysql数据库实现博客项目
  • django+sqllite+h5 实现简易版银行系统小demo,功能非常简单,主要练习Django框架,适合新手练习, 数据库使用本地sqllite, h5界面没有加载图片,参考链接有...
  • 我在网上找了很久,想找到一个基于python django做的项目都没有找到一个博客,写得比较好,并且完整的记录网站的开发过程,这给新手练手造成很大的麻烦,直接进入项目源码又不知从何下手,也看不太懂源码的思路。...

    网站展示网址:http://106.52.188.166:9100

    代码地址:https://github.com/zhongxiaoting/hengda

    一、前言

    我在网上找了很久,想找到一个基于python django做的项目,然后有详细的开发过程,但是网上都没有这种连载一个项目的博客。有的话,也是要钱或者VIP,这给新手练手造成很大的麻烦,直接进入项目源码又不知从何下手,也看不太懂源码的思路。所以,我就想写一个完整的项目博客来充实这一块内容。本项目只做展示、练手,为新手有一个好的练手过程。

    二、网站效果图展示

    网站的页面较多,我就只列举了一部分的网页效果,主要分为几大个模块:首页,简介,新闻动态,产品中心,服务支持,科研基地,欢迎咨询;
    在这几大模块之中有分为很多小模块,如:概况,荣誉资质,公司要闻,行业新闻等等,在这里就不列举了。

    首页
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    简介:
    在这里插入图片描述
    在这里插入图片描述
    新闻动态:
    在这里插入图片描述
    产品中心:
    在这里插入图片描述
    服务支持:
    在这里插入图片描述
    科研基地:
    在这里插入图片描述
    欢迎咨询:
    在这里插入图片描述
    后面我也会继续创作连载

    下一章:https://blog.csdn.net/qq_45758854/article/details/115283497

    展开全文
  • 02-Django项目的搭建(超详细版)

    千次阅读 2020-10-24 23:53:34
    django中,项目工程目录可以借助django提供的命令帮助我们创建。以下命令都是在windows的cmd窗口创建 创建django项目的虚拟环境,名字就叫django_env_01吧,如何安装虚拟环境,请参考python虚拟环境的搭建 ...

    一、 windows环境下创建django工程

    1.1、创建虚拟环境

    在使用Flask框架时,项目工程目录的组织与创建是需要我们自己手动创建完成的。
    在django中,项目工程目录可以借助django提供的命令帮助我们创建。以下命令都是在windows的cmd窗口创建

    1. 创建django项目的虚拟环境,名字就叫django_env_01吧,如何安装虚拟环境,请参考python虚拟环境的搭建
    mkvirtualenv django_env_01
    
    1. 切换到当前创建的虚拟环境,激活
    workon django_env_01
    
    1. 安装django,此处的版本号选择1.11,因为1.11和2.2为LTS(官方长期支持版本),秉着一般不选择最新版的原则。在这里插入图片描述
    pip install django==1.11
    

    查看是否安装成功

    (django_env_01) D:\>pip list
    Package              Version
    -------------------- -------
    amqp                 2.5.2
    asgiref              3.2.7
    billiard             3.6.3.0
    celery               4.4.2
    Django               1.11
    

    1.2、创建工程

    创建工程的命令为:
    django-admin startproject 工程名称
    例如:想要在D盘的code目录中创建一个名为demo的项目工程,先要切换到D盘的code目录中,可执行如下命令:
    D:
    cd code

    
    (django_env_01) C:\Users\Administrator>D:
    
    (django_env_01) D:\>cd code
    
    (django_env_01) D:\code>
    
    django-admin startproject demo
    

    执行后,会多出一个新目录名为demo如下,即为新创建的工程目录。

    (django_env_01) D:\code>django-admin startproject demo
    
    (django_env_01) D:\code>dir
     驱动器 D 中的卷是 文档
     卷的序列号是 0006-A235
    
     D:\code 的目录
    
    2020/10/24  21:44    <DIR>          .
    2020/10/24  21:44    <DIR>          ..
    2020/10/24  21:44    <DIR>          demo
                   0 个文件              0 字节
                   3 个目录 57,446,785,024 可用字节
    
    (django_env_01) D:\code>
    

    1.3、项目目录说明

    查看创建的工程目录,输入tree /F /A可以看目录结构。 结构如下

    (django_env_01) D:\code> tree /F /A
    卷 文档 的文件夹 PATH 列表
    卷序列号为 0006-A235
    D:.
    \---demo
        |---manage.py
        |
        \---demo
               |--- settings.py
               | ---urls.py
               | ---wsgi.py
               |---__init__.py
    
    
    (django_env_01) D:\code>
    

    与项目同名的目录,此处为demo。
    settings.py 是项目的整体配置文件。
    urls.py 是项目的URL配置文件。
    wsgi.py 是项目与WSGI兼容的Web服务器入口。
    manage.py 是项目管理文件,通过它管理项目。


    1.4、运行开发服务器

    在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。在这个服务器中,在需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。

    1. 先cd到demo中取,运行服务器命令如下:
    python manage.py runserver ip:端口
    

    或:

    python manage.py runserver
    
    1. 可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。
      为了方便起见,我们用pychram打开刚创建的项目,注:是用pycharm打开code文件夹下的第一个demo文件夹,为项目的根目录。
      在这里插入图片描述

    2. 切换虚拟环境中的解释器(告诉pycharm你用的是哪个虚拟环境)。
      依次点击 File—>settings---->project—>python Interpreter
      在这里插入图片描述

    3. 点击小齿轮,点击Add出现如下界面
      在这里插入图片描述
      在这里插入图片描述

    4. 打开pycharm的Terminal,输入 python manage.py runserver启动程序,可以看到如下语法错误(如果你用的python3.6之前的版本,则不存在此问题)

        from django.contrib.admin.filters import (
      File "D:\Documents\Python_virtualenv\django_env_01\lib\site-packages\django\contrib\admin\filters.py", line 10, in <module>
        from django.contrib.admin.options import IncorrectLookupParameters
      File "D:\Documents\Python_virtualenv\django_env_01\lib\site-packages\django\contrib\admin\options.py", line 12, in <module>
        from django.contrib.admin import helpers, widgets
    SyntaxError: Generator expression must be parenthesized (widgets.py, line 151)
    
    
    这是因为,当前用的是Python3.8版本,而Python3.7版本之后就与django1.11不兼容,diango2之后版本修复了这个问题(其实是多了一个逗号)。方式一,升级django 。方式2,改源码。这里选择改源码,方法如下:
    1. 直接右键运行manager.py文件,可以看到如下报错,

    在这里插入图片描述
    在这里插入图片描述
    将末尾逗号去掉即可。
    然后从新打开终端,输入python manage.py runserver

    (django_env_01) D:\code\demo>python manage.py runserver
    Performing system checks...
    
    System check identified no issues (0 silenced).
    
    You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    October 24, 2020 - 23:15:27
    Django version 1.11, using settings 'demo.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    
    

    可以看到,完美启动,在浏览器输入127.0.0.1:8000,如下:
    在这里插入图片描述

    也可以python manager --help 查看更多选项

    Python manager --help
    

    django默认工作在调式Debug模式下,如果增加、修改、删除文件,服务器会自动重启。按ctrl+c停止服务器。


    1.5、直接右键运行manager.py文件就能启动项目的配置方式

    在这里插入图片描述
    点击 Edit Configurations ,填入如下
    在这里插入图片描述
    参数说明:

    1. 只填runserver 表示只能用127.0.0.1:8000访问
      局域网下访问如下2,3的方式配置:
      一定要在settings中修改 ALLOWED_HOSTS = [’*’]
    2. ==填 runserver 本机ip:8000,表示只能用本机ip:8000访问,==例如 runserver 192.168.0.105:8000
    3. 填runserver 0.0.0.0:8000,表示可以用127.0.0.1:8000访问,也可以用本机ip:8000访问
      在这里插入图片描述

    1.6、创建子应用。

    在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,例如登录模块、注册模块、用户模块等等。各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。可以达到分层解耦,易扩展和维护。在Flask框架中也有类似子功能应用模块的概念,即蓝图Blueprint。
    Django的视图编写是放在子应用中的。

    1. 创建子目录
      在django中,创建子应用模块目录仍然可以通过命令来操作,即:
    python manage.py startapp 子应用名称
    

    manage.py 为上述创建工程时自动生成的管理文件。
    例如,在刚才创建的demo工程中,想要创建一个登录login子应用模块,可执行:

    cd code/demo
    python manage.py startapp login
    
    # 创建login子应用
    (django_env_01) D:\code\demo>python manage.py startapp login
    
    # 查看文件目录树
    (django_env_01) D:\code\demo>tree /F
    D:.---db.sqlite3
    │---manage.py       
    │        
    ├─demo
    │  │---settings.py
    │  │---urls.py
    │  │---wsgi.py
    │  │---__init__.py
    │                 
    │
    └─login
        │  admin.py
        │  apps.py
        │  models.py
        │  tests.py
        │  views.py
        │  __init__.py
        │
        └─migrations
              | __init__.py
    
    

    执行后,可以看到工程目录中多出了一个名为login的子目录。

    1. 子应用目录说明
      • admin.py 文件跟网站的后台管理站点配置相关。
      • apps.py 文件用于配置当前子应用的相关信息。
      • migrations 目录用于存放数据库迁移历史文件。
      • models.py 文件用户保存数据库模型类。
      • tests.py 文件用于开发测试用例,编写单元测试。
      • views.py 文件用于编写Web应用视图。
    2. 注册安装子应用
      创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。
      在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,初始工程中的INSTALLED_APPS如下:
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    
    

    注册安装一个子应用的方法的本质,是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。
    例如,将刚创建的login子应用添加到工程中,可在INSTALLED_APPS列表中添加’login.apps.LoginConfig’。其实也可以直接写创建的子应用名即可,例如直接写‘login’
    如果用pycharm创建的工程,默认创建的第一个子应用,pycharm会自动帮你注册。

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'login.apps.LoginConfig'
    ]
    

    1.7、创建视图

    同Flask框架一样,Django也用视图来编写Web应用的业务逻辑。Django的视图是定义在子应用的views.py中的。

    1. 创建
      打开刚创建的login模块,在views.py中编写视图代码。
    from django.http import HttpResponse
    
    def index(request):
        """
        index视图
        :param request: 包含了请求信息的请求对象
        :return: 响应对象
        """
        return HttpResponse("hello world!")
    

    说明:

    视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对象,通常名为request。
    视图函数的返回值必须为一个响应对象,不能像Flask一样直接返回一个字符串,可以将要返回的字符串数据放到一个HTTPResponse对象中。

    1. 定义子路由URL
      在子应用中新建一个urls.py文件用于保存该应用的路由。新建urls.py文件
      在这里插入图片描述
      在login/urls.py文件中定义路由信息。
    from django.conf.urls import url
    
    from . import views
    
    # urlpatterns是被django自动识别的路由列表变量
    urlpatterns = [
        # 每个路由信息都需要使用url函数来构造,django2以上版本用path   from django.urls import path
        # url(路径, 视图)
        url(r'^index/$', views.index),
    ]
    
    1. 工程总路由demo/urls.py中添加子应用的路由数据。
    
    from django.conf.urls import url, include
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),  # django默认包含的
    
        # 添加
        url(r'^login/', include('login.urls')), 
    ]
    

    说明:

    • 使用include来将子应用users里的全部路由包含进工程路由中;
    • r’^login/’ 决定了users子应用的所有路由都已/users/开头,如我们刚定义的视图index,其最终的完整访问路径为/login/index/。
    • include函数除了可以传递字符串之外,也可以直接传递应用的urls模块,如
    from django.conf.urls import url, include
    from django.contrib import admin
    import login.urls  # 先导入应用的urls模块
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        # url(r'^login/', include('login.urls')),
        url(r'^login/', include(login.urls)),  # 添加应用的路由
    ]
    
    1. 启动运行
      重新启动django程序python manage.py runserver
      在浏览器中输入网址127.0.0.1:8000/login/index/ 可看到返回的信息
      在这里插入图片描述
    展开全文
  • (根据居然老师直播课内容整理) 一、项目简介 本次项目实践,完成一下电商商城开发,开发一个类似淘宝类似的简化的商城 1、项目开发流程介绍 2、项目需求分析 3、项目架构设计 二、工程创建与配置 ...

    在这里插入图片描述

    (根据居然老师直播课内容整理)

    一、项目简介

    • 本次项目实践,完成一下电商商城开发,开发一个类似淘宝类似的简化的商城

    1、项目开发流程介绍

    在这里插入图片描述

    1.1 架构设计

    • 分析可能用到的技术点
    • 前后端是否分离
    • 前端使用那些框架
    • 后端使用那些框架
    • 选择什么数据库
    • 如何实现缓存
    • 是否搭建分布式服务
    • 如何管理源代码

    1.2 数据库设计

    • 数据库表的设计非常重要
    • 根据项目需求,设计合适的数据库表
    • 数据库表在前期如果设计不合理,后期随需求增加会变得难以维护

    1.3 集成测试

    • 在测试阶段要留意测试反馈平台的bug报告

    2、项目需求分析

    2.1 需求分析原因:

    • 可以整体的了解项目的业务流程和主要的业务需求。
    • 项目中,需求驱动开发。即开发人员需要以需求为目标来实现业务逻辑。

    2.2 需求分析方式:

    • 企业中,借助 产品原型图 分析需求。
    • 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应的业务及响应处理。

    2.3需求分析内容:

    • 页面及其业务流程和业务逻辑。

    2.4 主要步骤

    2.4.1 项目主要页面介绍(略)

    2.4.2 项目主要模块归纳

    模块功能
    验证图形验证、短信验证
    用户注册、登录、用户中心
    第三方登录QQ登录
    首页广告首页广告
    商品商品列表、商品搜索、商品详情
    购物车购物车管理、购物车合并
    订单确认订单、提交订单
    支付支付宝支付、订单商品评价
    MIS系统数据统计、用户管理、权限管理、商品管理、订单管理

    3、项目架构设计

    3.1 项目开发模式

    • 本项目开发模式如下:
    选项技术选型
    开发模式前后端不分离
    后端框架Django
    前端框架Vue.js
    • 说明
      • 前后端不分离的开发模式,是为了提高搜索引擎排名,即SEO。特别是首页,详情页和列表页。
      • 页面需要局部刷新:我们会选择使用Vue.js来实现。

    3.2 项目运行机制

    在这里插入图片描述

    二、工程创建与配置

    1、准备工作

    1.1 创建商城虚拟环境

    • 为项目创建目录并进入,执行 pipenv shell
    pipenv shell
    

    1.2 安装Django框架及相关包

    # 安装django环境
    pip install django==2.2
    # 安装mysql驱动
    pip install mysqlclient 
    # 安装redis驱动
    pip install django-redis
    

    1.3 创建美多商城Django工程

    django-admin startproject lgshop
    
    • 如果现在运行,出现以下提示
      在这里插入图片描述
      将 run/debug configurations的script paramenters 参数改为 runserver
      在这里插入图片描述

    1.4 其它准备

    • mysql数据库准备: mysql 5.7
    • redis数据库准备: redis 2.1

    2、配置开发环境

    • 项目的环境分为开发环境和生产环境。
      • 开发环境:用于编写和调试项目代码。
      • 生产环境:用于项目线上部署运行。

    2.1 指定开发环境配置文件

    • django创建项目时,自动在manager.py的main()函数指定了配置文件,将此处修改成自己指定的配置文件
      在这里插入图片描述
    def main():
        """Run administrative tasks."""
        # django默认的配置文件
        # os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lgshop.settings')
        # 开发环境的配置文件
        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lgshop.dev')
        try:
            from django.core.management import execute_from_command_line
        except ImportError as exc:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            ) from exc
        execute_from_command_line(sys.argv)
    
    
    • 注:wsgi.py 项目正式上线时才会使用,开发时可以忽略,但也不要删除

    2.2 配置MySQL数据库

    • 修改配置文件:本项目开发环境配置文件是dev.py
      在这里插入图片描述
    DATABASES = {
        'default': {
            # 'ENGINE': 'django.db.backends.sqlite3',
            # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
            # mysql 版本 5.7
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'lg_shop',  # 数据库名字
            'USER': 'root',  # 数据库用户名
            'PASSWORD': 'root',  # 数据库密码
            'HOST': '127.0.0.1',  # 数据库地址   
            'PORT': 3306  # 数据库端口号
        }
    }
    
    • 需要创建mysql数据库root/root@lg_shop
      在这里插入图片描述

    2.3 配置redis数据库

    • 默认的redis可以设定0号数据库(可以改)
    • session可以保存发1号数据库
    • 其它数据如果保存到其它库中。
    • 每增加一个,可以重命名一个,并修改相关参数
      在这里插入图片描述
    # Redis缓存 0-15  16
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/0",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
            }
        },
        "session": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/1",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
            }
        }
    }
    

    2.4 配置工程日志

    • 配置工程日志目的:使用日志文件记录网站输出信息
      在这里插入图片描述
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,  # 是否禁用已经存在的日志器
        'formatters': {  # 日志信息显示的格式
            'verbose': {
                'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
            },
            'simple': {
                'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
            },
        },
        'filters': {  # 对日志进行过滤
            'require_debug_true': {  # django在debug模式下才输出日志
                '()': 'django.utils.log.RequireDebugTrue',
            },
        },
        'handlers': {  # 日志处理方法
            'console': {  # 向终端中输出日志
                'level': 'INFO',
                'filters': ['require_debug_true'],
                'class': 'logging.StreamHandler',
                'formatter': 'simple'
            },
            'file': {  # 向文件中输出日志
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(BASE_DIR, 'logs/lgshop.log'),  # 日志文件的位置
                'maxBytes': 300 * 1024 * 1024,
                'backupCount': 10,
                'formatter': 'verbose'
            },
        },
        'loggers': {  # 日志器
            'django': {  # 定义了一个名为django的日志器
                'handlers': ['console', 'file'],  # 可以同时向终端与文件中输出日志
                'propagate': True,  # 是否继续传递日志信息
                'level': 'INFO',  # 日志器接收的最低日志级别
            },
        }
    }
    
    • 在根目录上创建 logs目录

    2.4 配置前端静态文件

    • 商城项目中需要使用静态文件,比如css,images,js等等

    2.4.1 准备静态文件

    在项目目录下新建一个static目录

    2.4.2 指定静态文件加载路径

    在这里插入图片描述

    # ./lgshop/dev.py 
    # 指定加载静态文件的路径前缀
    STATIC_URL = '/static/'
    
    # 静态文件加载路径
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    
    

    2.5 配置模板文件

    2.5.1 准备模板文件

    在项目目录下新建一个templates目录

    2.5.2 指定模板文件加载路径

    在这里插入图片描述

    # ./lgshop/dev.py 
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    

    3、设置导包路径

    • 为了方便管理所有应用, 创建apps目录,存放所有应用

    3.1 创建用户模块子应用

    -例创建users应用
    在这里插入图片描述

    python ..\manage.py startapp users 
    

    3.2 定义users的一个view方法

    在这里插入图片描述

    # ./apps/user/views.py
    from django.shortcuts import render
    from django.views import View
    
    class RegisterView(View):
        def get(self, request):
            """提供用户注册页面"""
            return render(request, 'register.html')
    
    • 注:在./templates/目录下创建register.html

    3.3 注册app应用

    • 有两种方法:直接注册;设置导包路径注册

    3.3.1 直接注册

    在这里插入图片描述

    3.3.2 设置导包路径注册

    在这里插入图片描述

    • 注:查看导包路径: print(sys.path)

    3.4 注册应用路由

    • 先注册应用内的路由或先注册总路由都可以

    3.2.1 注册应用内部的路由

    在这里插入图片描述

    # ./apps/users/urls.py 
    from django.urls import path
    from . import views
    
    app_name = 'users'
    
    urlpatterns = [
        # 注册
        path('register/', views.RegisterView.as_view(), name='register'),
    ]
    

    3.2.2 注册总路由

    在这里插入图片描述

    # ./lgshop/urls.py
    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('users/', include('apps.users.urls')),
    ]
    
    

    4、相关目录和文件

    在这里插入图片描述

    展开全文
  • 本来想直接删除了好了,但是后来想想,何不花点时间把这个小项目重构一下,就可以给以后学习Django的同学一个完整的项目参考,就可以代替了一般培训课程或者老师上课PPT里那种陈旧或者不完整的例子。 于是一共花费了...
  • 系统运用Django框架搭建了一个全新的图书管理系统,详细的介绍了Django的开发流程以及知识总结。
  • 文章目录一、创建数据库1.创建数据库2.数据库配置二、数据迁移 一、创建数据库 1.创建数据库 打开navicat,创建数据库,字符集设置utf8 2.数据库配置 安装 ...# 'ENGINE': 'django.db.backends.sqli
  • Python开发-Django 开源项目

    千次阅读 2021-11-29 14:49:21
    Django 是一个以志愿者为生的社区。随着它的不断发展,我们总是需要更多的人来帮助他人。您可以通过多种方式做出贡献,无论是在框架本身还是在更广泛的生态系统中。所以你要想使用好Django,那就要熟悉了解它
  • Django-购物网站系统

    2018-06-01 17:31:10
    django项目包含所有文件包括前端页面,JS, HTML5, CSS,数据库自己配
  • 此Python+Django+VUE后台管理系统。包括的功能是用户管理----用户组管理的 增删该查功能。其中mysql数据库表的信息user_group.sql,也放到项目文件夹里了。
  • 项目实现了一个网页端的 博客系统 ,该博客系统允许多人注册登录,用户可以在网站上面发布博客,浏览别人发布的博客。 1、只要用户有手机号就可以进行注册登录,注册的时候需要 图片验证码 和 手机短信验证码; 2...
  • django-admin将为项目创建一个名为myDjango文件夹,并在其中创建项目的其他文件。 2.创建应用 为项目添加一个名为b的应用。 D:\myDjango>python manage.py startapp b 3.创建视图 用IDLE打开myDjango\first\...
  • django后端框架实现的音乐播放平台,包含分页、批量处理、侧边隐藏式音乐播放器、酷炫的界面导航,无数据库可直接运行
  • 基于windows系统IIS部署Django项目

    千次阅读 2021-11-10 10:50:42
    本文章参考书籍:钱彬老师《python web开发从入门到实践》 一、Python WSGI部署原理 ... python web项目的部署的基本原理,是基于一种WSGI的框架协议。 WSGI协议主要包括Web服务器和应用服务器两部分。 ...
  • 天天生鲜项目1. 认识电商1.1 B2B--企业对企业1.2 C2C--个人对个人1.3 B2C--企业对个人1.4 C2B--个人对企业1.5 O2O--线上到线下1.6 F2C--工厂到个人1.7 B2B2C -企业-企业-个人2. web项目开发流程3. 需求分析3.1 用户...
  • 基于Django的论坛系统项目

    千次阅读 2019-07-16 22:31:59
    ForumSystem 一个论坛 ...卡的话csdn下载:要积分不...一个论坛系统,一个Django论坛项目 使用:pycharm打开项目后,选择好运行环境,然后在命令行创建数据库(下面两条语句),然后运行就行了 python manage.py makem...
  • 项目基于Django3.0+Adminlet-2.4.10+Python3.8+Mysql5.7.26+Pycharm2019+windows7 全新视角解读疫情信息! 项目地址 http://huoran.51vip.biz:50283/index/ 一、概述 其实,一直想写一个实战项目,基于java和 .net...
  • 本文主要介绍如何使用python语言,基于bert的文本分类和Django的网站设计实现一个:基于Django和bert的新闻文本分类可视化系统,如果有毕业设计或者课程设计需求的同学可以参考本文。本项目同时使用了深度学习框架...
  • 项目实战】Python基于Django框架实现校园网上一站式购物系统
  • Django写的一个简易的教务管理系统。 界面简陋了点,因为鄙人不怎么会前端。后台的管理可以进入admin界面。 数据库用的是SQLite,文件是目录下的database文件。
  • Bambu Analytics 提供了一个简单的系统,用于在您的 Django 项目中实施 Google Analytics 等分析工具,以便您可以跟踪页面浏览量、目标和事件。 默认情况下,它支持 Google 的程序,但您可以通过bambu.analytics...
  • django架构简介

    千次阅读 2022-01-12 14:34:31
    Django特性 ORM。models层建立数据类与数据库中数据形成ORM映射关系 ...例如如下目录结构中,项目名称mysite为一个project, 文件夹mysite/mysite称为项目的根配置文件,其中的文件mysite/mysite/urls.py提供了url的
  • 一、安装指定版本Django pip install django==2.2 二、使用django-admin创建第一个项目 django-admin startproject testdjango 三、创建APP(创建名为user) django-admin startproject user 接下来在settings.py中...
  • Python+Django+Mysql志愿者活动推荐系统 个性化活动推荐 基于用户、项目、内容的协同过滤推荐算法 SimpleWebActivityCFRSPython python实现协同过滤推荐算法实现源代码下载 一、项目简介 1、开发工具和实现技术 ...
  • Django实现简单博客系统

    千次阅读 多人点赞 2021-05-08 16:05:56
    Django实现简单博客系统第一节 - 基础1. 简单的导览图,学会不迷路2. 基本操作介绍3. 命令简单介绍4. mysite:所建项目的管理功能目录5. blog:我们创建的项目之一6. db.sqlite3 : 默认的数据库7. 网站配置:mysite/...
  • 博客统计分析系统依托于CSDN数据,使用hadoop做离线分析处理,使用django +前端进行数据展示该项目在16年的全国计算机作品大赛中获取三等奖,在辽宁省计算机作品大赛中获取二等奖 数据比较混乱,暂时不公布了,有...
  • https://blog.csdn.net/a249900679/article/details/51527200中间有一点问题,不过也解决了,参考:https://www.cnblogs.com/tssc/p/7762998.html近几天,突然想玩玩python,就弄了个虚拟机,打算先大致搭个环境,...
  • Windows平台通过IIS部署django项目

    千次阅读 2022-01-29 11:52:12
    django大型项目,mysql数据库,在windows平台通过IIS部署,要点详细均配图,踩了很多坑最终成功

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,796
精华内容 2,718
关键字:

django系统项目csdn