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

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上,也可以运行在支持WSGIFastCGI的服务器上。支持多种数据库,已经支持Postgresql,MySql, Sqlite3,OracleGoogle 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:

 class oneic_settings:
MSSQL_INFO = {"hostname":"xxx","username":"xxx","password":"xxx","dbname":"xx"}

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

 from dataas import oneic_settings
def mssqlserver_conn_db():
try:
#strconn= 'DSN=test;uid='+oneic_settings.MSSQL_INFO.get("username")+';PWD='+oneic_settings.MSSQL_INFO.get("password")
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")
db = pyodbc.connect(strconn)
return db
except Exception,e:
print e

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

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

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

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

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

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

3、策划url.py文件——控制网页首页显示:

 from django.conf import settings
(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}),
url(r'^admin/', include(admin.site.urls)),
url(r'$','Oneic_new.index.new_html')

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

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

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

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

checkLogin.py:

 from django.conf import settings
#检测是否登录
def checkLogin(req):
edition_id = settings.SESSION_CSSID
eny_email = req.COOKIES.get(settings.SESSION_COOKIE_MAIL,'')
eny_mp = req.COOKIES.get(settings.SESSION_COOKIE_MP,'')
eny_userid = req.COOKIES.get(settings.SESSION_COOKIE_UID,'')
eny_usertype = req.COOKIES.get(settings.SESSION_COOKIE_UTYPE,'') cartlist = getShopCart(req)
login_info = {"cartlist":cartlist,"cartnum":len(cartlist),"loginemail":"","loginuserid":"","loginmp":"","usertype":"","css_id":edition_id}
if eny_email != "":
login_info['loginemail'] = DES.decrypt(str(eny_email))
if eny_usertype:
login_info['usertype'] = DES.decrypt(str(eny_usertype)) #DES为加密的py文件,可以自己随便写!
if eny_userid != "":
login_info['loginuserid'] = DES.decrypt(str(eny_userid))
cartnum = getShoppcartNum(login_info.get('loginuserid'))
login_info['cartnum'] = cartnum
if eny_mp != "":
mphone = DES.decrypt(str(eny_mp))
enymp = []
mp=list(mphone)
for i in range(0,len(mp)):
if i>2 and i<7:
mp[i]=chr(42)
enymp.append(mp[i])
else:
enymp.append(mp[i])
eny_Mp = ''.join(enymp)
login_info['loginmp'] = eny_Mp
login_info['mp'] = DES.decrypt(str(eny_mp)) return login_info

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

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

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

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

1、值传入:

1、<link rel="stylesheet" type="text/css" href="/css/www_style.css?v={{ css_id }}" />
2、<div><p>{{参数}</p></div>

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

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

 {% if condition %}
... display
{% endif %} or {% if condition1 %}
... display 1
{% elif condition2 %}
... display 2
{% else %}
... display 3
{% endif %}

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

3、嵌入网页:

 {% include 'template/footer.html' %}

一定要写路径。

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

Python Django(WEB电商项目构建)的更多相关文章

  1. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍

    web前端Vue+Django rest framework 框架 生鲜电商项目实战  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...

  2. web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝

    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...

  3. 引爆潮流技术 Vue+Django REST framework打造生鲜电商项目

    引爆潮流技术Vue+Django REST framework打造生鲜电商项目 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受, ...

  4. python-django框架-电商项目-项目部署_20191127

    python-django框架-电商项目-项目部署: uwsgi作为web服务器: 在pycharm中启动项目:使用python manage.py runserver 这个runserver是dja ...

  5. C# 大型电商项目性能优化(一)

    经过几个月的忙碌,我厂最近的电商平台项目终于上线,期间遇到的问题以及解决方案,也可以拿来和大家多做交流了. 我厂的项目大多采用C#.net,使用逐渐发展并流行起来的EF(Entity Framewor ...

  6. Spring Boot微服务电商项目开发实战 --- 基础配置及搭建

    根据SpringBoot实现分布式微服务项目近两年的开发经验,今天决定开始做SpringBoot实现分布式微服务项目的系列文章,帮助其他正在使用或计划使用SringBoot开发的小伙伴们.本次系列文章 ...

  7. 16套java架构师,高并发,高可用,高性能,集群,大型分布式电商项目实战视频教程

    16套Java架构师,集群,高可用,高可扩展,高性能,高并发,性能优化,设计模式,数据结构,虚拟机,微服务架构,日志分析,工作流,Jvm,Dubbo ,Spring boot,Spring cloud ...

  8. Java 18套JAVA企业级大型项目实战分布式架构高并发高可用微服务电商项目实战架构

    Java 开发环境:idea https://www.jianshu.com/p/7a824fea1ce7 从无到有构建大型电商微服务架构三个阶段SpringBoot+SpringCloud+Solr ...

  9. python-django电商项目-需求分析架构设计数据库设计_20191115

    python-django电商项目需求分析 1.用户模块 1)注册页 注册时校验用户名是否已被注册. 完成用户信息的注册. 给用户的注册邮箱发送邮件,用户点击邮件中的激活链接完成用户账户的激活. 2) ...

随机推荐

  1. Oracle 正则表达式 分割字符串

    inData='12345|张三|男' SELECT REGEXP_SUBSTR (inData, '[^|]+', 1,1) into 用户ID FROM DUAL;SELECT REGEXP_SU ...

  2. C#学习-接口与抽象类

    接口与抽象类的区别 1.抽象类中可以包含虚方法.非抽象方法和静态成员: 当接口中不能包含虚方法和任何静态成员,并且接口中只能定义方法,不能有具体事项,方法的具体实现由实现类完成. 2.抽象类不能实现多 ...

  3. 基于ASP.NET MVC 下的Extjs的Combbox加载速率问题,终于解决啦:)

    在实际的开发项目中,自己遇到一个让自己苦恼很久的问题,一直也未解决,先简单介绍一下这个问题吧.当在表单里有多个combbox的时候(表单中的combbox是经过封装的控件,从后台请求同一个方法获取数据 ...

  4. 安卓获取签名SHA1

    Debug签名:D:\Java\jdk1.8.0_151\bin>keytool -list -v -keystore debug.keystore  无需密码 Relese签名:D:\Java ...

  5. phpmail发送phpexcel生成的附件,php导出的Excel 作为邮件附件发送

    PHP发送邮件戳这里https://www.cnblogs.com/wangzhaobo/p/8931328.html PHP导出excel戳这里https://www.cnblogs.com/wan ...

  6. java获取某一字段日期并增加7天存入另一字段

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String dateString = format.f ...

  7. Unreal 4 error 记录

    1.打包出来的exe,黑屏 这种最大的可能是在“地图&模式中”将 Default Maps设置为自己的map,注意这里分为Editor Startup Map和Game Default Map ...

  8. SQL注入绕WAF总结

    0x00 前言 在服务器客户端领域,曾经出现过一款360主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影.从半年前的测试虚拟机里面,翻出了360主机卫士Apache版 ...

  9. 字节跳动19春招研发第一次在线笔试-A卷

    结果:凉. 说明 此博客仅为笔试记录所用,如涉及版权或保密问题,请联系我及时删除. 联系方式:georgehu716@qq.com 1. 找零 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C ...

  10. 3dmax 笔记本电脑

    一般来说,苹果MacBook系列适合运行3ds Max. 3ds Max是一款大型图像处理软件,对电脑硬件要求高.在所有MacBook系列中,配备Retina屏幕的MacBook Pro 15寸是最佳 ...