前端眼中 django 基础笔记整理

Django
语法
设置项目
django-admin startproject
运行
python3 manage.py runserver 127.0.0.1:8010
添加模块
python3 manage.py startapp app名字
模型设置
python3 manage.py makemigrations (更改命令)
python3 manage.py migrate (更新表结构)

  • 生成requirements.txt文件
    pip3 freeze > requirements.txt
  • 安装requirements.txt依赖
    pip install -r requirements.txt
    模型语法
    setting 文件
    DATABASES = {
    ‘default’: {
    # ‘ENGINE’: ‘django.db.backends.sqlite3’,
    # ‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),
    ‘ENGINE’: ‘django.db.backends.mysql’,
    ‘NAME’: ‘数据库名称’,
    ‘USER’: ‘root’,
    ‘PASSWORD’: ‘密码’,
    ‘HOST’: ‘127.0.0.1’,
    ‘PORT’: ‘3306’,
    # show variables like ‘character_set_database’;
    # 修改字段字符编码
    # alter table spiders_weibo modify text longtext charset utf8mb4 collate utf8mb4_unicode_ci;
    ‘OPTIONS’: {‘charset’: ‘utf8mb4’},
    }
    }

模型 数据库语法
models.DateTimeField(日期)
auto_now = False #默认设置
,auto_now_add = True #默认添加
models.CharField (字符大小)
max_length=100, 最大字符
default=“" 设置默认值
blank=True
null=True 设置可为空
models.TextField (长字符串)
设置表名
class Meta:
db_table = ‘表名’
模型 数据库操作
from mysqls.acdModel.models import ProcExpert 引入models处理数据库
from django.db.models import Q
from django.core import serializers 序列化
单独查询
ProcExpert.objects.get(条件)
查询符合数据的
ProcExpert.objects.filter(Q(hiden=1) & Q(dels=1))
查询全部
ProcExpert.objects.all()
增加
pe = ProcExpert()
pe.data = 1,
pe.save()
修改
pe = ProcExpert.objects.get(vid=vid)
pe.data = 1,
pe.save()
删除
pe = ProcExpert.objects.get(id=1)
pe.delete()
查询计数
ProcExpert.objects.all().count()
模糊化查询
__contains
比较大小
__lte 小于
__gt 大于
序列化
serializers.serialize(“json”, ProcExpert.objects.filter(Q(hiden=1) & Q(dels=1)))
序列化查询出来的数据 后期处理为
lists = json.loads(data)
datak = []
for item in lists:
datak.append(item[‘fields’])
datak 为序列化处理后的数据
数据库判断为 try: except:
try:
serializers.serialize(“json”, wikiMo.objects.filter(dels=1))
except:
http请求
request
.method 判断请求类型
.body post传送数据data
.GET[‘元素’] 获取url上的元素
.headers[‘元素’] 获取请求头中的元素
返回数据
from django.http import HttpResponse
return HttpResponse(json.dumps(loginRe), content_type=“application/json”)
返回数据
cors
引用cors django-cors-headers
ajax请求会触发两次 第一次请求为OPTIONS 第二次请求才为请求
INSTALLED_APPS = [
···
‘corsheaders’,
···]
MIDDLEWARE=[
···
‘corsheaders.middleware.CorsMiddleware’,
# ‘django.middleware.csrf.CsrfViewMiddleware’, 关闭禁止post传值
···]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
#设置请求类型
CORS_ALLOW_METHODS = (
‘DELETE’,
‘GET’,
‘OPTIONS’,
‘PATCH’,
‘POST’,
‘PUT’,
‘VIEW’,
)

设置接收请求头

CORS_ALLOW_HEADERS = (
‘XMLHttpRequest’,
‘X_FILENAME’,
‘accept-encoding’,
‘authorization’,
‘content-type’,
‘dnt’,
‘origin’,
‘user-agent’,
‘x-csrftoken’,
‘x-requested-with’,
‘Pragma’,
‘token’
)

url编写
urls.py中引入每个app中的urls
from django.conf.urls import url,include
include 为 引入
urlpatterns = [
url(r’^access/’, include(‘views.access.urls’)),
]
app中的urls.py
from django.urls import path
from * import views
urlpatterns = [
···
path(‘wikiAdd’, views.wikiAdd),
···
]
jwt token 数据处理
加密
dic = {
‘exp’: datetime.datetime.now() + datetime.timedelta(hours=10), # 过期时间
‘iat’: datetime.datetime.now(), # 开始时间
‘iss’: ‘juanjikejis’, # 签名
‘data’: { # 内容,一般存放该用户id和开始时间
‘authou’: autho,
‘username’: username,
‘uid’: uid,
‘name’: name,
‘uids’: uids
},
}
tokensd = jwt.encode(dic, ‘几次秘密’, algorithm=‘HS256’)
生成的token为特别的字符串 bytes类型
需要用 tokensd.decode(‘utf8’) 修改为字符串
解密
获取请求头中的token并从字符串转为bytes
token = request.headers[‘token’]
tokens = str.encode(token)
jwtdata = jwt.decode( tokens , ‘几次秘密’, issuer=‘juanjikejis’, algorithms=[‘HS256’])
jwtdata中的数据中的data中有封存进入的数据
提取数据为 jwtdata[‘data’][‘内容’] 内容
json数据化处理

  • json.loads json转为对象
    json.dumps 对象转为json
    json数据化处理必须为序列化的
    md5加密
    import hashlib
    md5 = hashlib.md5()
    passwordmd5 = ‘drex’+password+‘kjgdxtjj’

实例化md5加密方法

md5.update(passwordmd5.encode(‘utf-8’))

进行加密,python2可以给字符串加密,python3只能给字节加密

result = md5.hexdigest()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值