Django入门教程
创建Django项目
django-admin startproject mysite
这将在目录下生成一个mysite目录,也就是你的这个Django项目的根目录。它包含了一系列自动生成的目录和文件,具备各自专有的用途。
启动开发服务器
python manage.py runserver
创建一个app
python manage.py startapp polls
编写view.py
from django.shortcuts import render
from django.shortcuts import HttpResponse
def index(request):
return HttpResponse("hello world")
这样第一个页面就写好了,接下来就是渲染
配置url
//MyApp中新建urls.py
from MyApp import views
urlpatterns = [
path('', views.index, name='index'),
]
mysite中urls.py
from django.urls import include, path
urlpatterns = [
# path('admin/', admin.site.urls),
path('', include('MyApp.urls')),
]
这样简单的页面就好了
下一步是数据库配置 (这里是mysql)
#mysite中init.py中需配置
import pymysql
pymysql.install_as_MySQLdb()
#setting.py中配置好数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
# 数据库名
'NAME': 'py',
# 用户名
'USER': 'root',
# 密码
'PASSWORD': 'lyc123',
# 本地连接
'HOST': 'aa.aa.aa.aa',
# 端口号
'PORT': '3306'
}
}
配置完成,下一步开始创建模型
先创建一个用户表吧
from django.db import models
# Create your models here.
class UserTest(models.Model):#用户表
user_telephone = models.CharField(max_length=50,primary_key=True,verbose_name='账户')
user_password = models.CharField(max_length=50,verbose_name='密码')
def __str__(self):
return self.user_telephone
然后执行命令
python manage.py makemigrations MyApp
最后在执行
python manage.py migrate
这时 你的模型应该就在数据库建好了
已有的数据库生成model模型
python manage.py inspectdb > MyApp/models.py
获取前端传的参数(非表单传参)
def login_judge(request):#登入判定
if request.method == "GET":
data = {
"info": "请求错误!!!",
"status": 3
}
return HttpResponse(json.dumps(data))
else:
data = json.loads(str(request.body, 'utf-8'))
return HttpResponse(json.dumps(data), content_type='application/json')
str(request.body, ‘utf-8’) 是为了将bytes类型数据转为string格式, 然后json.loads(str(request.body, ‘utf-8’))转为json串, 最后json.dumps(data)转为json返回去
获取数据库的user表数据 并转为json格式
data = {}
book = LsUser.objects.values('id')
data['data'] = list(book)
return JsonResponse(data, safe=False)
添加条件查询
username = json.loads(request.body, encoding='utf-8')["username"]
data = {}
book = LsUser.objects.filter(username=username).values()
data['data'] = list(book)
return JsonResponse(data, safe=False)
分页查询
def get_content(request):
if request.method == "GET":
return JsonResponse({"data": "请求失败"}, safe=False)
else:
try:
page = json.loads(request.body, encoding='utf-8')["page"]
pageSize = json.loads(request.body, encoding='utf-8')["pageSize"]
data = {}
book = LsContent.objects.filter().values('id', 'title', 'user_id').order_by("-create_time")
paginator = Paginator(book, pageSize)
book = paginator.page(page).object_list
# 获取数据的总数
count = paginator.count
data['data'] = list(book)
data['code'] = 200
data['count'] = count
data['totalPage'] = math.ceil(count/5)
except:
return JsonResponse({"data": "请输入正确的参数", "code": 1001}, safe=False)
else:
return JsonResponse(data, safe=False)
模糊查询
def demo(request):
data = {}
try:
keyword = json.loads(request.body, encoding='utf-8')["keyword"]
except:
keyword = ''
else:
keyword = json.loads(request.body, encoding='utf-8')["keyword"]
book = LsContent.objects.filter(title__contains=keyword).values('id', 'title', 'user_id')
data['data'] = list(book)
return JsonResponse(data, safe=False)