(坚持每一天,就是成功)

Python Django Web框架,Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V组成。

安装Python 和 Django可以自己查阅资料 此文均在Pycharm下进行需要下载可加群:607021567找群主,本文主要介绍电商产品。所以可自行学习,创造自己的网站。

1、Django架构设计:

Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:

层次职责

模型(Model),即数据存取层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

模板(Template),即业务逻辑层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。

视图(View),即表现层存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

2、工作机制:

(这里的文件顺序或包含文件夹并不相同,我是为了介绍各个文件,所以拼接到一起。)

1.用manage .py runserver 启动Django服务器时就载入了在同一目录下的settings .py。这里的settings.py文件内包含着数据库信息的设置,静态文件的设置,静态文件指(js,css,html,images)等,settings.py文件是我们django框架的核心文件之一。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf,默认的是urls .py。

2.当访问url的时候,Django会根据ROOT_URLCONF的设置来装载URLConf。

3.然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图函数(index.py),并把HttpRequest对象作为第一个参数(通常是request)(函数的参数是request)。

4.最后该view函数负责返回一个HttpResponse对象(html网页)。

这里的核心文件已经介绍完,剩下的文件可以在我们熟悉django框架后在认识,所以不一一介绍了!

3、部署:

Django可以运行在Apache,Nginx上,也可以运行在支持WSGI,FastCGI的服务器上。支持多种数据库,已经支持Postgresql,MySql, Sqlite3,Oracle。Google App Engine也支持Django的某些部分,国内支持的平台有(SAE)Sina App Engine,(BAE)百度应用引擎。

4、管理文件夹

接下来介绍核心文件夹,这里是分类清楚我们的文件该怎么去管理:

(一)、这里的文件夹名字可以自己任意去命名,第一行是我们的django项目的主文件夹名字,默认主文件夹下可以自己创建自己的py文件的文件夹,不过pycharm自动创建了py文件的文件夹,命名规则是以主文件夹命名。

(二)、第二行就是我们的py文件所在的文件夹,这些py文件主要是我们操作前端到后台所需要的。

(三)、第三行为我们的静态文件目录包含———:Js、Css、Html、img、fonts等文件

(四)、第四行主要是我们的Html模板文件目录,这里存放我们的主页,后台管理页的html文件。

(五)、manage.py启动文件

5、电商项目——产品数据,后台管理

电商项目用户部分:主要分为三大类——1、用户浏览商品 ,2、购买商品 ,3、管理订单

电商项目管理部分:主要也为三大类——1、商品数据整合网站 ,2、接受用户信息数据存入后台(注册和管理),2、处理用户订单问题

分析到这里首先进行电商管理部分,商品数据整合——SqlServer + Django:

首先我们需要创建连接数据库py文件——dataas.py:1 class oneic_settings:2     MSSQL_INFO = {"hostname":"xxx","username":"xxx","password":"xxx","dbname":"xx"}

接下来创建对数据库详细操作的py文件——data_db.py:

1 from dataas import oneic_settings2 def mssqlserver_conn_db():3   try:4     #strconn= 'DSN=test;uid='+oneic_settings.MSSQL_INFO.get("username")+';PWD='+oneic_settings.MSSQL_INFO.get("password")5     strconn= 'DRIVER={SQL Server};SERVER='+oneic_settings.MSSQL_INFO.get("hostname")+';DATABASE='+oneic_settings.MSSQL_INFO.get("dbname")+';UID='+oneic_settings.MSSQL_INFO.get("username")+';PWD='+oneic_settings.MSSQL_INFO.get("password")6     db = pyodbc.connect(strconn)7     return db8   except Exception,e:9     print e

这里首先使用准备好的sql文件,就是我们的详细数据文件。

6、电商项目——后台部分

1、网站首页各个页面的html模板,这里的模板就是需要各位自己去创造了,这里需要储备前端的基础知识,包括:JS,CSS,HTML基础技能,也可直接下载现成的模板。

2、管理静态文件——settings.py:

1 TEMPLATE_DIRS = ( 2     'E:/Oneic_new/Oneic_new', 3     # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". 4     # Always use forward slashes, even on Windows. 5     # Don't forget to use absolute paths, not relative paths. 6 ) 7 STATIC_URL = 'E:/Oneic_new/static/' 8 STATIC_ROOT = 'E:/Oneic_new/static/' 9 10 TEMPLATE_DIRS = (os.path.join(BASE_DIR,  'templates'),)

这里主要修改STATIC_URL 和 STATIC_ROOT文件。

3、策划url.py文件——控制网页首页显示:1 from django.conf import settings2 (r'^static/(?P.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}),3     url(r'^admin/', include(admin.site.urls)),4     url(r'$','Oneic_new.index.new_html')

这写代码除了3行,剩余是我需要添加的代码,第2行就是静态文件的部署,4行是django所要找到url的位置。

4、处理数据传入操作——index.py:

1 import common 2 import sms 3 from uc import getShopCart,checkLogin 4 def basicinfo(request): 5     logininfo = checkLogin(request) 6     if logininfo and logininfo.get('loginuserid') != None and logininfo.get('loginuserid')!="": 7         userdata={} 8         if logininfo.get('usertype') == None or logininfo.get('usertype') == "" or logininfo.get('usertype') == "0": 9             return HttpResponseRedirect('/selectType.html')10         mssql_conn = common.mssqlserver_conn_db()11         cs = mssql_conn.cursor()12         cs.execute("{call sp_member_Allinfo_get_py (?)}", logininfo.get('loginuserid'))13         q = cs.fetchone()14         cs.commit()15         if (q and len(q) > 0):16             if q[0] != 0:17                 userdata['mp'] = q[1]18                 userdata['realname'] = q[2]19                 userdata['corname'] = q[3]20                 userdata['tel'] = q[4]21                 userdata['fax'] = q[5]22                 userdata['pos'] = q[6]23                 userdata['userType'] = q[7]24                 userdata['userLevel'] = q[8] if q[8] else ''25                 userdata['userClass'] = q[9] if q[9] else ''26                 userdata['province'] = q[10] if q[10] else ''27                 userdata['city'] = q[11] if q[11] else ''28                 userdata['district'] = q[12] if q[12] else ''29                 userdata['address'] = q[13] if q[13] else ''30                 userdata['RegTime'] = q[14].strftime('%Y-%m-%d %H:%M:%S') if q[14] else ''31                 userdata['LastLoginTime'] = q[15].strftime('%Y-%m-%d %H:%M:%S') if q[15] else ''32                 userdata['LastLoginIP'] = q[16] if q[16] else ''33                 userdata['LoginCount'] = q[17] if q[17] != None else ''34                 userdata['Email'] = q[18] if q[18] else ''35                 userdata['lottery_num'] = q[19] if q[19] != None else 036                 userdata['integral_num'] = q[20] if q[20] != None else 037                 userdata['po_num'] = q[21] if q[21] != None else 038                 userdata['work_order_num'] = q[22] if q[22] != None else 039                 userdata['rfq_num'] = q[23] if q[23] != None else 040         logininfo['userdata'] = userdata41         cs.close()42         mssql_conn.close()43         return render_to_response('index.html',logininfo)44     else:45         return HttpResponseRedirect('/signin')

这里包含cookie检测:checkLogin.py文件——cookie检测。logininfo——为我们需要的数据就是要在网页中显示的数据。

checkLogin.py:

1 from django.conf import settings 2 #检测是否登录 3 def checkLogin(req): 4     edition_id = settings.SESSION_CSSID 5     eny_email = req.COOKIES.get(settings.SESSION_COOKIE_MAIL,'') 6     eny_mp = req.COOKIES.get(settings.SESSION_COOKIE_MP,'') 7     eny_userid = req.COOKIES.get(settings.SESSION_COOKIE_UID,'') 8     eny_usertype = req.COOKIES.get(settings.SESSION_COOKIE_UTYPE,'') 9     10     cartlist = getShopCart(req)11     login_info = {"cartlist":cartlist,"cartnum":len(cartlist),"loginemail":"","loginuserid":"","loginmp":"","usertype":"","css_id":edition_id}12     if eny_email != "":13         login_info['loginemail'] = DES.decrypt(str(eny_email))14     if eny_usertype:15         login_info['usertype'] = DES.decrypt(str(eny_usertype)) #DES为加密的py文件,可以自己随便写!16     if eny_userid != "":17         login_info['loginuserid'] = DES.decrypt(str(eny_userid))18         cartnum = getShoppcartNum(login_info.get('loginuserid'))19         login_info['cartnum'] = cartnum20     if eny_mp != "":21         mphone = DES.decrypt(str(eny_mp))22         enymp = []23         mp=list(mphone)24         for i in range(0,len(mp)):25             if i>2 and i<7:26                 mp[i]=chr(42)27                 enymp.append(mp[i])28             else:29                 enymp.append(mp[i])30         eny_Mp = ''.join(enymp)31         login_info['loginmp'] = eny_Mp32         login_info['mp'] = DES.decrypt(str(eny_mp))33             34     return login_info

这里是后台基本完成的项目了之一!WEB的是需要一步一步去扩建,所以我只是介绍一下我们日常项目的简单介绍,如果又不太详细的可加群!

7、电商项目——前端构造:

这里JS,CSS我不去解释了,因为他们是前端的基础应用,其中与python密切结合的是html:

所以我简单介绍一下在html文件中怎么去应用我们后台传入的数据:

1、值传入:1、2、

{{参数}

这里的值与参数都是“ {{ 参数 }} ”两个大括号嵌入的。

2、判断——可直接在html中写if else语句:

1 {% if condition %} 2      ... display 3 {% endif %} 4   5 or 6  7 {% if condition1 %} 8    ... display 1 9 {% elif condition2 %}10    ... display 211 {% else %}12    ... display 313 {% endif %}

这里的用法和python文件中用法无异。

3、嵌入网页:1 {% include 'template/footer.html' %}

一定要写路径。

至此,总体电商项目初入门介绍完毕,剩下的就是需要自己来创造其它的管理层页面。加油!之后也许继续会出多层次界面的介绍,请期待!

Welcome to Python world! I have a contract in this world! How about you?

python电商项目源码_Python Django(WEB电商项目构建)相关推荐

  1. 收集了很多音乐播放器类的Android项目源码,非常不错的开源项目

    JieCaoVideoPlayer立志成为Android平台使用最广泛的视频播放控件 http://neast.cn/forum.php?mod=viewthread&tid=61610&am ...

  2. 收集了很多音乐播放器类的Android项目源码,非常不错的开源项目【转】

    from:http://blog.csdn.net/java173842219/article/details/54096598 JieCaoVideoPlayer立志成为Android平台使用最广泛 ...

  3. python语音转文字源码_Python实现自动化语音转文本,彻底解放你的双手

    当对一个或多个人的谈话进行记录时,采用一种高度准确和自动化的方式将口语提取为文本非常有用.转换成文字后,便可以将其用于进一步分析或用作其他功能. 我们将使用称为AssemblyAI(https://w ...

  4. python 搜索引擎 实验楼的源码_Python语言之简历有错别字被拒绝聘用?文档被领导说?Python实现永无错别字!...

    本文主要向大家介绍了Python语言之简历有错别字被拒绝聘用?文档被领导说?Python实现永无错别字!,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 找出中文错别字 1.5 代 ...

  5. python发朋友圈源码_Python 带你一键生成朋友圈超火的九宫格短视频

    1. 场景 如果你经常刷抖音和微信朋友圈,一定发现了最近九宫格短视频很火! ​从朋友圈九宫格图片,到九宫格视频,相比传统的图片视频,前者似乎更有个性和逼格 除了传统的剪辑软件可以实现,是否有其他更加快 ...

  6. python抢票12306源码_Python实现12306火车票抢票系统

    Python实现12306火车票抢票系统效果图如下所示: 具体代码如下所示: import urllib.request as request import http.cookiejar as coo ...

  7. 如何用python编写抢购程序源码_Python实现淘宝秒杀聚划算抢购自动提醒源码

    说明 本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(URL自己定义). 同时还可以通过命令行参数自定义刷新间隔时间(默认0.1s)和监控持续 ...

  8. python web开发项目 源码_Python + Flask 项目开发实践系列七

    对于 Python + Flask 这种灵活的web开发框架,在前面的六个系列文章中详细的进行了说明,主要讲到了页面的首页加载时的页面渲染,增加功能,删除功能,修改功能,查询功能,查询详情功能等一些页 ...

  9. 计算机毕业论文java毕业设计论文题目ssm项目源码水果商城系统电商购物项目[包运行成功]

最新文章

  1. 蚁群用户界面:一群桌面运动的机器人
  2. 【图像处理opencv】_numpy基本操作
  3. java拷贝函数_Java的深拷贝与浅拷贝的几种实现方式
  4. python利用特征进行可视化样本显示_利用Python进行机器学习之特征选择
  5. [蓝桥杯]带分数-dfs
  6. 为啥linux分区是nvme0n1,NAS 篇五:尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试...
  7. c语言中字符数字加'0',C语言中的NULL与转义字符'\0'以及数值0的关系
  8. Android模拟器中sd卡的创建和文件的上传
  9. 区块链基础学习(一)
  10. Python之网络编程(粘包、粘包解决方案)
  11. 开菜鸟驿站需要什么条件?投入成本大概要多少?
  12. Dummary、Fake、Stub、Spy、Mock
  13. Flume中的flume-env.sh和log4j.properties配置调整建议(图文详解)
  14. 【HDU - 4565】So Easy!【数学思维题】
  15. Prim POJ 2031 Building a Space Station
  16. 感知层在物联网中的重要性
  17. 【更新】VMware虚拟机黑群晖7.1.1 RC(懒人包)
  18. Firefox书签同步工具Xmarks
  19. PLSQL代码调试Oracle dbms_utility返回错误
  20. 蓝牙AOA融合蓝牙信标定位系统的实现

热门文章

  1. android webview腾讯,Android webview无法播放腾讯视频问题
  2. 基于织梦Cms5.7 utf-8版本的仿今日头条微信小程序模块插件的使用和安装
  3. c++ hashmap入门教程
  4. tensorrt 低精度推理
  5. yolov5 simplepose人体姿态
  6. 大厂常见笔试题 滑动窗口内数的和
  7. cmake 编译Release版本
  8. command not found: shopt 的 ~/.bashrc
  9. Unexpected key(s) in state_dict: module.backbone.bn1.num_batches_tracked
  10. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 2011年08月05日 09:08:15