django基础配置及ajax

简单配置及简单知识点
1.下载django模块
pip install Django==2.0.13

  1. 生成django项目
    django-admin startproject mypro(项目名)
  2. 生成子应用
    python manage.py startapp web(子应用名)
  3. 启动项目
    python manage.py runserver
  4. 数据库的迁移
    python manage.py makemigrations
    python manage.py migrate (django不易,迁移请谨慎)

5. 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删掉或者注释掉

发送邮件设置
如果需要发送邮件则在settings中配置

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文件

6. 主应用urls中的配置
讲主应用的urls复制拷进子应用
模块django.urls中加上include
下面配置path(’’,include(“web.urls”)), #web为子应用名
7. 子应用中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<path>.*)$',serve,{'document_root':UPLOAD_ROOT}),	#上传图片配置,详情见图片上传文档

8. Ajax简单格式
阻止submit提交动作

$(function () {
	$(‘id或类选择器’).submit(function (e){
		e.preventDefault();
	})
})

A标签点击发起ajax请求

Function a标签的触发事件名(可传递动态id){
}
$.ajax({
         url:"/addcart/",	#要建立连接的url
         type: "post",		#传递的方式,一般传数据post,获取get
         dataType:"json",	#格式为json格式,注意t要大写
         data:param,     #要传递的值,key:value形式存在,获取时以键取值
         success:function (res) {
             if(res.code == 200){
		window.location.href='/' #跳转
		location.reload()   #页面刷新

             }
             else {
			#这里执行状态码不是200时的操作
             }
         }
         })

异步加载拼接

收到code==200后
Var mes = res.返回的数据列表
Var cid = res.返回的分类id
Var len = mes.length
Var html = ‘拼接头部 例:<table border=2>;<ul>’
For(var i=0,i<len,i++){
	Html += ‘中间内容 例:<tr><td>mes[i][‘name’]</td></tr>’
}
$(‘要展示的地方的id或类选择器’).html(html)

9. 视图文件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(‘/’)   #跳转到某个页面

创建static文件夹

#外键 User,to_field='id',on_delete='CASCADE'
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值