Vue+Django独立开发电商项目

501 阅读1分钟

3、 在myproject下的settings.py配置文件中,把默认的sqllite3数据库换成我们的mysql数据库:Vue+Django独立开发电商项目

Database

docs.djangoproject.com/en/1.11/ref…

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'myproject', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', } } 并把app加入到installed_apps列表里:

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', ] 4、 在app目录下的models.py里我们简单写一个model如下:

-- coding: utf-8 --

from future import unicode_literals

from django.db import models

Create your models here.

class Book(models.Model): book_name = models.CharField(max_length=64) add_time = models.DateTimeField(auto_now_add=True)

def __unicode__(self):
    return self.book_name

只有两个字段,书名book_name和添加时间add_time。如果没有指定主键的话django会自动新增一个自增id作为主键

5、 在app目录下的views里我们新增两个接口,一个是show_books返回所有的书籍列表(通过JsonResponse返回能被前端识别的json格式数据),二是add_book接受一个get请求,往数据库里添加一条book数据:

Create your views here.

@require_http_methods(["GET"]) def add_book(request): response = {} try: book = Book(book_name=request.GET.get('book_name')) book.save() response['msg'] = 'success' response['error_num'] = 0 except Exception,e: response['msg'] = str(e) response['error_num'] = 1

return JsonResponse(response)

@require_http_methods(["GET"]) def show_books(request): response = {} try: books = Book.objects.filter() response['list'] = json.loads(serializers.serialize("json", books)) response['msg'] = 'success' response['error_num'] = 0 except Exception,e: response['msg'] = str(e) response['error_num'] = 1

return JsonResponse(response)

可以看出,在ORM的帮忙下,我们的接口实际上不需要自己去组织SQL代码

6、 在app目录下,新增一个urls.py文件,把我们新增的两个接口添加到路由里:

from django.conf.urls import url, include import views

urlpatterns = [ url(r'add_book,views.addbook,),url(rshowbooks', views.add_book, ), url(r'show_books', views.show_books, ), ]

我们还要把app下的urls添加到project下的urls中,才能完成路由: from django.conf.urls import url, include from django.contrib import admin from django.views.generic import TemplateView import myapp.urls

urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^api/', include(myapp.urls)), url(r'^$', TemplateView.as_view(template_name="index.html")), ]