技术分享1 分钟阅读
Django 项目搭建
Django 项目搭建
安装
pip install Django
创建项目
创建项目 django-admin startproject HelloWorld
进入项目 cd HelloWorld
创建app python manage.py startapp accounts
进入accounts,添加urls.py
from django.urls import path,include
urlpatterns = [
path('login/', Login.as_view(), name='login'),
]
为项目添加路由
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/',include('accounts.urls')),
]

mode操作后迁移 python manage.py makemigrations

创建基础表(迁移 ) python manage.py migrate

添加管理员 python manage.py createsuperuser

运行 python manage.py runserver

MySQL配置
进入目录first/first/settings.py中,找到:

修改为:
DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'HOST':'127.0.0.1',
'PORT':'3306',
'NAME':'dbname', # 数据库名
'USER':'name',
'PASSWORD':'password',
'OPTIONS':{
'init_command':"SET sql_mode='STRICT_TRANS_TABLES'"
},
}
}
在项目中的init.py,在里面输入以下内容并保存:
import pymysql
pymysql.install_as_MySQLdb()
弹窗提示
前端代码,放在body前
{% if messages %}
<script>
{% for msg in messages %}
alert('{{
.message }}');
{% endfor %}
</script>
{% endif %}
后端代码
from django.contrib import messages
messages.success(request, "登录成功!")
from django.http import HttpResponse from django.contrib import messages # 导入消息模块
from django.shortcuts import render
def index(request): # 需要弹出的消息框
messages.success(request, '欢迎访问') # 注意你需要在index.html添加我们上面的js代码
return render(request, 'index.html', {})
ORM查询
print(user.objects.filter(email=email).values('password')[0]['password'])
print(user.objects.filter(email=email).values('password'))

ORM 写法
class Project(models.Model):
# id 会自动创建,可以手动写入
name = models.CharField('名称',max_length=32,null= True)
create_time = models.DateTimeField('创建日期',auto_now = True)
start_time = models.CharField('开始时间',max_length=32)
end_time = models.CharField('结束时间',max_length=32)
state = models.DateField('状态',default=True)
SQL as 重命名,orm实现
TestPlanCases.objects.filter(testplan_id=dict['id']).annotate(name=F('cases__name'),module=F('cases__module'),project__name=F('cases__project__name')).values('cases__id','name','module','project__name')
查询结果

注意:
跨表重命名id字段时,不能重命名为id,为id时会与原来表的id重复不能查询出数据
view
class ProjectViews(APIView):
authentication_classes = [JwtTokenAuthentication, ]
def get(self, request):
Project_obj = Project.objects.all()
Project = Project_obj.values_list()
msg = {'msg': 'OK', 'code': 200, 'data': books_book}
return JsonResponse(msg)
def post(self, request):
Project.objects.create(**request)
msg = {'msg': '添加成功', 'code': 200}
return JsonResponse(msg)
def delete(self,request):
project = Project.objects.filter(id=id)
if len(project) ==0:
msg = {'msg': '项目不存在', 'code': 200}
else:
project.delete()
msg = {'msg': '删除成功', 'code': 200}
return JsonResponse(msg)
def put(self,request):
Project.objects.filter(id=id).update(**request.body)
msg = {'msg': '编辑成功', 'code': 200}
return JsonResponse(msg)
django添加响应状态码
HttpResponse(content="响应体数据",content_type="响应体数据类型",status="状态码")有关使用上的问题,欢迎您在底部评论区留言,一起交流~
读者评论
评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。
暂无评论,欢迎抢沙发。