Notion Blog
技术分享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 中的页面底部(与正文同页,便于管理)。

0/1500

暂无评论,欢迎抢沙发。