Bootstrap

django电商项目源码_项目步骤

13a80f6d5a77bdcfe4637059d828774b.png

1.设计app,根据前端设计数据库app

2.新建虚拟环境,安装django,mysqlclient等库,打开编辑器选择虚拟环境,新建项目名称。

3.配置setting中的database,

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'tgwblog',
        'USER': 'root',
        'PASSWORD': 'cptbtptp',
        'HOST': '127.0.0.1',
    }
}

navicate中新建数据库(utf8,genaral_ci),迁移数据库(tools, run manage.py task,makemigrations,migrate)。

4.新建app (run manage.py task,startapp),setting中注册app,重载setting方法

AUTH_USER_MODEL = "users.UserProfile"

2513b260fda41ee25ab5226c6907b4e9.png

5.设计models,(django自带表可以继承,字段为如图)

第一行加utf8编码
# _*_ encoding:utf-8  _*_
from django.contrib.auth.models import AbstractUser  #继承字段

c4ae7a4dfd9062eca320cdc082bf029a.png

527a6a7c2cf089a61a1fd941d5662507.png
外键错误解决办法

model写完了,继承的要重载unicode方法。最后向admin注册model,用xadmin作为后台管理(也可以用simpleui比xadmin好用),创建管理员createspueruser,设置后台中文如下

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

当安装xadmin失败:

f601ca8d416f987c898738a9ce5c6ee9.png

(1.当python2.7,django<2.0时:

安装xadmin失败,因为README.rst导致的,github下载https://github.com/sshwsfc/xadmin源码,将README.rst内容删除为空白。再安装即可。)

(2.当python3.6,django>2.0时可以:寻找对应的xadmin,所以我们需要安装xadmin==2.0.1版本。首先我们先去github上下载xadmin==2.0.1的zip文件。(源码包)。

下载地址:sshwsfc/xadmin

源码安装请学习https://blog.csdn.net/xujin0/article/details/84583969,安装完之后要迁移数据库!)

将xadmin,crispy_forms(注意下划线)和注册到app中,并迁移数据库。
把urls中admin替换掉
from django.contrib import admin
from django.urls import path
import xadmin

urlpatterns = [
    path('xadmin/', xadmin.site.urls),
]

1常规model注册admin如下:

from .models import UserProfile,EmailVerifyRecord,Banner

class UserProfileAdmin(admin.ModelAdmin):
    pass

class EmailVerifyRecordAdmin(admin.ModelAdmin):
    pass

class BannerAdmin(admin.ModelAdmin):
    pass

admin.site.register(UserProfile,UserProfileAdmin)
admin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)
admin.site.register(Banner,BannerAdmin)

2将model注册xadmin如下:

1.在app下新建adminx.py文件
写入:
from .models import UserProfile,EmailVerifyRecord,Banner

import xadmin


class UserProfileAdmin(object):
    pass


class EmailVerifyRecordAdmin(object):
    pass


class BannerAdmin(object):
    pass


xadmin.site.register(UserProfile,UserProfileAdmin)
xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)
xadmin.site.register(Banner,BannerAdmin)

其中继承字段会导致注册失败:

项目中使用了xadmin, 并且我的UserProfile 继承了django 自带的User,并重写了一些字段

:The model UserProfile is already registered

解决办法:

1.xadmin.site.unregister(UserProfile) #注销
2.xadmin.site.register(UserProfile, UserProfilesAdmin) #重新注册
3.makemigrations xadmin 
4.migrate xadmin 

6.编辑html,设计view,设计urls(路由),配置setting(ALLOWED_HOSTS = ['*'])。

1.拷贝html,新建template目录,static静态文件目录。

2.配置路由urls处理静态文件:

urls.py:

from django.views.generic import TemplateView
import xadmin

 path('xadmin/', xadmin.site.urls),
 path('', TemplateView.as_view(template_name="index.html"), name="index"),

3.配置setting

末尾加:
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static')
]

4.改html中的静态文件(css,js)路径

1,配置首页跳转路径,配置静态文件相对路径(要在html中加载loadstaticfiles)

<!doctype html>
<html>
{% load staticfiles %}
<head>

.........

<link href="{% static 'css/base.css' %}" rel="stylesheet">
<link href="{% static 'css/m.css' %}" rel="stylesheet">
<script src="{% static 'js/jquery-1.8.3.min.js' %}" ></script>
<script src="{% static 'js/comm.js' %}"></script>

...



<li><a href="{% url 'index' %}">首页</a></li>

验证码库,github搜索:django-simple-captcha框架(版本0.4.6)下载及用法在github往下拉,表单提交要加csrftoken

9.完善。

;