简单配置
1.下载django模块
pip install Django==2.0.13
- 生成django项目
django-admin startproject mypro(项目名) - 生成子应用
python manage.py startapp web(子应用名) - 启动项目
python manage.py runserver - 数据库的迁移
python manage.py makemigrations
python manage.py migrate (django不易,迁移请谨慎) - settings中的配置
后台中文本地化(放在指定位置,替换掉之前的)
LANGUAGE_CODE = ‘zh-Hans’
TIME_ZONE = ‘Asia/Shanghai’
USE_I18N = True
USE_L10N = True
USE_TZ = False
static文件路径配置
STATIC_URL = ‘/static/’
STATICFILES_DIRS = [
os.path.join(BASE_DIR, ‘static’),
]
上传图片时配置(放在最后即可)
UPLOAD_ROOT = os.path.join(BASE_DIR,‘upload’)
数据库配置(原来的删掉或注掉)
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘HOST’: ‘127.0.0.1’,
‘PORT’: ‘3306’,
‘NAME’: ‘d_shop’, #数据库名
‘USER’: ‘root’,
‘PASSWORD’: ‘mysql’, #密码
‘OPTIONS’: {
‘init_command’: “SET sql_mode=‘STRICT_TRANS_TABLES’”,
},
}
}
Templates设置
‘DIRS’: [os.path.join(BASE_DIR,‘templates’)],
注册子应用
INSTALLED_APPS中注册子应用,别忘了逗号 # ,‘web’
CSRF设置
MIDDLEWARE中的csrf删掉或者注释掉
发送邮件设置
如果需要发送邮件则配置
EMAIL_USE_SSL = True
EMAIL_HOST = ‘smtp.qq.com’ # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 465
EMAIL_HOST_USER = ‘229429587@qq.com’ # 帐号
EMAIL_HOST_PASSWORD = ‘gnjuflyfsyqbcajd’ # 密码
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
#详情请见文档发送邮件,应该不考
创建文件夹
在项目中创建static templates upload文件
- 主应用urls中的配置
讲主应用的urls复制拷进子应用
模块django.urls中加上include
下面配置path(’’,include(“web.urls”)), #web为子应用名 - 子应用中urls中的配置
from django.urls import path,re_path #re_path正则匹配路由(上传图片)
from web import views #子应用下的视图文件
from django.views.generic import TemplateView
from Shop.settings import UPLOAD_ROOT
#导入文件路由库
from django.views.static import serve
path(‘register’,views.register),
path(‘detail’,views.Detail.as_view()), 类视图
re_path(’^upload/(?P
-
Ajax简单格式
$.ajax({
url:"/addcart/", #要建立连接的url
type: “post”, #传递的方式,一般传数据post,获取get
dataType:“json”, #格式为json格式,注意t要大写
data:param, #要传递的值,key:value形式存在,获取时以键取值
success:function (res) {
if(res.code == 200){
#这里获取返回的数据
}
else {
#这里执行状态码不是200时的操作
}
}
}) -
视图文件views或创建的视图文件的配置
常见的模块
from django.shortcuts import render,redirect #绑定页面,重定向
from django.http import HttpResponse #返回值
from django.views import View #类视图
from web.models import * #orm数据库操作
import re #正则匹配
from django.contrib.auth.hashers import make_password,check_password
#生成哈希密码,检验哈希密码
import json
#转化json格式或解码成python语言
from django.core.mail import send_mail
#发送邮件时导入,考试应该不考
from utils.comment import PRECATECOUNT
from django.core.paginator import Paginator
#分页时导入
绑定页面
return render(request,‘admin/catelist.html’,data)
返回json数据
return HttpResponse(json.dumps(mes, ensure_ascii=False))
取数据
request.POST.get(‘’)
request.GET.get(‘’)
request.FILES.get(‘’)
重定向
return redirect(’/sadmin/indeximage’)
类视图模型
class Reducecart(View):
def get(self,request):
def post(self,request):
def put(self,request): #目前一般用前两个
def delete(self,request):
session的增删查
request.session.get(’’) #查
request.session[‘key’] = value #增
del request.session[‘key’] #删
request.session.flush() #删除所有session
图片上传时用的函数
def uploadfile(img):
f = open(os.path.join(settings.UPLOAD_ROOT, ‘’, img.name), ‘wb’)
for chunk in img.chunks():
f.write(chunk)
f.close()
10.juery中简单的操作
$(‘.class’) #选中类,class为要选中的类名
$(‘#id’) #选中id, id为要选中的id
function detail() {
#内为执行函数时要进行的操作
}
$(‘.class’).click(function () {
#内为点击时要进行的操作
})
window.location.reload() #刷新页面
window.location.replace(‘/’) #跳转到某个页面
def submit_image(request):
file = request.FILES.get(‘file’)
uploadfile(file)
mes = {}
mes[‘path’] = “/upload/” + file.name
mes[‘error’] = False
return HttpResponse(json.dumps(mes, ensure_ascii=False))
class Meta:
db_table = ‘news’
news = models.ForeignKey(News,to_field=‘id’,on_delete=‘CASCADE’)
user = models.ForeignKey(User,to_field=‘id’,on_delete=‘CASCADE’)