django框架目录介绍
blog (项目生成根目录容器)
manage.py: (一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互)
- blog/settings.py (基本配置,数据库连接)
- blog/urls.py (路由配置)
- blog/wsgi.py (一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。)
- blog/__init__.py (一个空文件,告诉 Python 该目录是一个 Python 包)
templates (模板文件目录)
- index.html
user文件 (新建的app模块)
- urls.py (路由配置,定向到view.py封装的函数)
- view.py (功能函数的拆分)
- model.py (定义类,操作数据库)
使用app模块
如果要使用模型Test,必须创建一个app
( django-admin startapp user)
’user‘ 加在settings中的INSTALLED_APPS中
数据库操作
user / modes.py
class User(models.Model):
class Meta:
db_table= 'user'
name = models.CharField(max_length=20)
email = models.CharField(max_length=128)
分类页面代码实现
blog/urls.py
from django.conf.urls import url, include
from django.contrib import admin
from django.shortcuts import render
# 模板页面映射
def index(request):
return render(request, 'index.html', {'user': 'I am template data'})
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index.html/', index),
url(r'^user/', include('user.urls')),
]
blog/settings.py
添加映射模板查询位置
TEMPLATES 的 DIRS字段信息改为 'DIRS': [os.path.join(BASE_DIR, 'templates')],
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'mysqlcmdb', # 你要存储数据的库名,事先要创建之
'USER': 'root', # 数据库用户名
'PASSWORD': 'xxx', # 密码
'HOST': '127.0.0.1', # 主机
'PORT': '3306', # 数据库使用的端口
}
}
user/url.py
from django.conf.urls import url, include
from .views import reg
urlpatterns = [
url(r'^reg$', reg),
]
user/view.py
from django.http import HttpRequest, HttpResponse, JsonResponse, HttpResponseBadRequest
import simplejson # 需要 pip install
from .models import User #引入User类,进行数据库语句操作
def reg(request: HttpRequest):
try:
payload = simplejson.loads(request.body) # 将post参数处理成json格式
# request.GET(POST).get('email',default='') get(POST)请求指定参数获取
email = payload['email']
qs = User.objects.filter(email=email) #查看数据库中有没有这个email
response = {}
for t in qs:
response['id'] = t['id']
response['name'] = t['name']
response['password'] = t['password]
if qs: #数据库中已经存在了
return JsonResponse({'data': response, 'msg': '已经存在了'})
name = payload['name']
uesr = User()
user.name = name
uesr.email = email
try:
user.save() #插入注册信息进数据库
return JsonResponse({'uer_id': user.id}) # 200状态码
except Exception as e:
return HttpResponseBadRequest() # 插入失败
except Exception as e:
return HttpResponseBadRequest()
Django一些操作数据库方法
- list = User.objects.all() [0: 20] // 通过objects这个模型管理器的all()获得所有数据行的前20条数据
- // from django.db.models import Q 用来使用 & | 非(~Q() ) 复杂判断条件
- response2 = User.objects.filter(Q(age=12) & Q(name=''xx')) // 过滤条件
- response3 = User.objects.get(id=1) // 获取单个对象
- User.objects.order_by("id") // 数据排序
- User.objects.filter(id=1).update(name='Google') // 更新某一对象数据
- User.objects.filter(id=1).delete() // 删除某一对象数据
- user.save() //插入数据,user表示User类实例,用来添加插入信息之后,进行保存
python manage.py runserver 0.0.0.0:8000 // 启动服务 通过localhost:8000 访问