mycharm环境建立django项目并增删改查

准备开发环境

提前准备好python(本机:3.7.4),pip等组件(略)。

1.下载并安装mycharm

2.下载并安装django框架,操作步骤为:file-->settings-->project(python interpreter),查看右侧是否有django框架,若没有则新增:

新增页面:

完成后即可。项目完整目录如下:

一:输出普通页面

在djangoweb项目的views.py页面添加如下代码:

from django.http import HttpResponse, JsonResponse
from django.shortcuts import render
def index(request):
    # return HttpResponse('Hello Django')
    context = {}
    context['hello'] = 'Hello World!'  # 数据绑定
    return render(request, 'hello.html', context)  # 将绑定的数据传入前台

然后在djangoproject1项目的urls.py页面,添加路由规则:

from DjangoWeb import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index)
]

并在此项目的settings.py页面添加:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

在与djangoweb项目平级的路径下建立文件夹:static/css,static/js,并在其中放入静态文件mypage.css及jquery.js,这里只是演示静态文件的存放及获取方法,放其他文件也行。

然后,在templates目录下建立base.html及hello.html,其代码如下:

base.html:

{% load static %}
{#base.html#}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>模板测试</title>
    <link rel="stylesheet" href="{% static 'css/mypage.css' %}">
    <script src="{% static 'js/jquery.js' %}"></script>
</head>
<body>
    <h1>{{ hello }}</h1>
    <p>Django模板测试</p>
    {% block mainbody %}
       <p>original</p>
    {% endblock %}
</body>
</html>

hello.html:

{#hello.html#}
{% extends "base.html" %}
 
{% block mainbody %}<p class="redColor">继承了 base.html 文件</p>
{% endblock %}

建立后,在控制台启动:

python manage.py runserver

并在浏览器中访问:http://127.0.0.1:8000/index/页面:

二.数据增删改查:

根据数据库实际情况,修改settings.py中的database环节:

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': BASE_DIR / 'db.sqlite3',
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '****',
        'USER': '*****',
        'PASSWORD': '*****',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

其中需要安装mysqlclient组件。修改好配置后,在控制台运行以下命令,来根据数据库表生成model:

python manage.py inspectdb > projectname/models.py
配置了多个数据库,则还可以配置数据库别名来指定根据哪个库中的表来生成Model
python manage.py inspectdb --database default >student/models.py  # default是默认的别名

完成后,在views.py页面编写相关方法,并在urls.py中配置好urlpatterns(参照上面方法,此处略)。

views.py页面相关代码(重点):

最简单输出json代码:

def getjson(self):
    data = {
        'ID': '1',
        'name': '张飞',
        '学历': '本科'
    }
    return HttpResponse(json.dumps(data), content_type="application/json")

查询数据写法1:

def select(self):
    a = OcrScreen.objects.get(typeid=1)
    m = {
             'typeid': a.typeid,
             'screenname': a.screenname
         }
    return HttpResponse(json.dumps(m), content_type="application/json")

查询数据写法2:

def select(self):
    for song in OcrScreen.objects.all():
        m = {
            'typeid': song.typeid,
            'screenname': song.screenname
        }
        z.append(m)
    return HttpResponse(json.dumps(m), content_type="application/json")

查询数据写法3:

def select(self):
    a = OcrScreen.objects.get(typeid=1)
    z = serializers.serialize("json", [a])
    return HttpResponse(json.dumps(z), content_type="application/json")

新增及修改数据代码如下:

def add(self):
    a = OcrScreen(typeid=1, screenname='222222', machinetypeid=1, status=1, excelpath='\dddd\abc')
    a.save()
    return HttpResponse("OK")

删除数据代码如下:

def delete(self):
    a = OcrScreen.objects.get(typeid=1)
    a.delete()
    return HttpResponse("OK")

restful风格写法:

def validate_picture(request):

    picture_path = request.GET['picture_path']
    if picture_path == '':
        return HttpResponse('缺少参数', content_type="application/json")

    _file_exist = os.path.exists(picture_path)

    if _file_exist is False:
        a = ResponseObj(result=False, message='文件不存在', created_path='')
        return HttpResponse(a.serialize(), content_type="application/json, charset=utf-8") 
  else:
     return HttpResponse('OK', content_type="application/json")

ResponseObj.serialize方法如下:

def serialize(self):
        return json.dumps({'result': self.result, 'message': self.message, 'created_path': self.created_path}, ensure_ascii=False)

调用方法很简单:http://127.0.0.1:8000/validatePicture?picture_path=23

返回:

以上代码均经过验证,其中路由部分解释以后再补上,仅供参考。

文章出处:www.cnblogs.com/jizhong

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/jizhong/p/15070314.html