Python Django(WEB电商项目构建)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: (坚持每一天,就是成功) Python Django Web框架,Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V组成。 安装Python 和 Django可以自己查阅资料 此文均在Pycharm下进行需要下载可加群:607021567找群主,本文主要介绍电商产品。

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

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:

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

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

1 from dataas import oneic_settings
2 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 db
8   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 settings
2 (r'^static/(?P<path>.*)$','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 0
36                 userdata['integral_num'] = q[20] if q[20] != None else 0
37                 userdata['po_num'] = q[21] if q[21] != None else 0
38                 userdata['work_order_num'] = q[22] if q[22] != None else 0
39                 userdata['rfq_num'] = q[23] if q[23] != None else 0
40         logininfo['userdata'] = userdata
41         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'] = cartnum
20     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_Mp
32         login_info['mp'] = DES.decrypt(str(eny_mp))
33             
34     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语句:

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

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

3、嵌入网页:

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

一定要写路径。

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

Welcome to Python world! I have a contract in this world! How about you?
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
14天前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端框架的比较
【4月更文挑战第9天】在移动设备和多样屏幕尺寸盛行的时代,构建能够适应不同视口的响应式Web界面变得至关重要。本文深入探讨了几种流行的前端框架——Bootstrap、Foundation和Tailwind CSS,分析它们在创建响应式设计中的优势与局限。通过对比这些框架的栅格系统、组件库和定制化能力,开发者可以更好地理解如何选择合适的工具来优化前端开发流程,并最终实现高性能、跨平台兼容的用户界面。
|
14天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
1天前
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
11 6
|
3天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python构建简单的图像识别应用
本文将介绍如何利用Python语言及其相关库来构建一个简单但功能强大的图像识别应用。通过结合OpenCV和深度学习模型,我们将展示如何实现图像的特征提取和分类,从而实现对图像中物体的自动识别和分类。无需复杂的算法知识,只需一些基本的Python编程技巧,你也可以轻松地创建自己的图像识别应用。
|
5天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
11 0
|
6天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
7天前
|
数据采集 NoSQL 搜索推荐
五一假期畅游指南:Python技术构建的热门景点分析系统解读
五一假期畅游指南:Python技术构建的热门景点分析系统解读
|
7天前
|
机器学习/深度学习 资源调度 数据可视化
使用Python和Keras进行主成分分析、神经网络构建图像重建
使用Python和Keras进行主成分分析、神经网络构建图像重建
|
8天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。
|
8天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。