基于Django搭建web app框架

作者: EldonZhao | 来源:发表于2017-01-16 17:28 被阅读246次

Django安装:

eldon@ubuntu:~$ sudo pip install Django==1.10.5
The directory '/home/eldon/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/eldon/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -Hflag.
Collecting Django==1.10.5
  Downloading Django-1.10.5-py2.py3-none-any.whl (6.8MB)
    100% |████████████████████████████████| 6.8MB 50kB/s
Installing collected packages: Django
  Found existing installation: Django 1.8.10
    Uninstalling Django-1.8.10:
      Successfully uninstalled Django-1.8.10
Successfully installed Django-1.10.5

查看Django版本:

eldon@ubuntu:~$ python -m django --version
1.10.5

使用Django创建项目(project):

eldon@ubuntu:~/github/ColusLifeDemo$ django-admin startproject Server
eldon@ubuntu:~/github/ColusLifeDemo$ ls
Browser  LICENSE  README.md  Server
eldon@ubuntu:~/github/ColusLifeDemo$ cd Server/
eldon@ubuntu:~/github/ColusLifeDemo/Server$ tree -L 2
.
├── manage.py
└── Server
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

1 directory, 5 files

创建应用(app):

eldon@ubuntu:~/github/ColusLifeDemo/Server$ python manage.py startapp maps
eldon@ubuntu:~/github/ColusLifeDemo/Server$ ls
manage.py  maps Server
eldon@ubuntu:~/github/ColusLifeDemo/Server$ cd maps/
eldon@ubuntu:~/github/ColusLifeDemo/Server/Map$ ls
admin.py  apps.py  __init__.py  migrations  models.py  tests.py  views.py

修改setting文件:

eldon@ubuntu:~/github/ColusLifeDemo/Server/Server$ vim settings.py
INSTALLED_APPS中添加'maps'

启动服务:

至此整个web服务框架就搭建成功了,你可以按如下步骤尝试启动一下服务。

eldon@ubuntu:~/github/ColusLifeDemo/Server$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

January 16, 2017 - 07:53:33
Django version 1.10.5, using settings 'Server.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
网站打开效果

添加接口:

eldon@ubuntu:~/github/ColusLifeDemo/Server$ git diff
diff --git a/Server/Server/urls.py b/Server/Server/urls.py
index 9ef4436..dac1cb2 100644
--- a/Server/Server/urls.py
+++ b/Server/Server/urls.py
@@ -15,7 +15,9 @@ Including another URLconf
 """
 from django.conf.urls import url
 from django.contrib import admin
+from maps import views as maps_views

 urlpatterns = [
     url(r'^admin/', admin.site.urls),
+    url(r'^maps/([a-z]+)/$', maps_views.show),
 ]
diff --git a/Server/maps/views.py b/Server/maps/views.py
index 91ea44a..b1fa5b9 100644
--- a/Server/maps/views.py
+++ b/Server/maps/views.py
@@ -1,3 +1,9 @@
+import json
 from django.shortcuts import render
+from django.http import HttpResponse

 # Create your views here.
+
+def show(request, *params):
+    context = {"country_name": params[0]}
+    return HttpResponse(json.dumps(context, indent=4))

mysql数据库配置:

  • 配置setting:
# vim Server/settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'mysql': {
        'ENGINE': 'django,db,backends.mysql',
        'NAME': 'coluslife',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '3306',
    },
}
  • 创建数据库:
mysql -uroot
> CREATE DATABASE coluslife;

创建模型:

  • 编辑maps/models.py文件:
from __future__ import unicode_literals
from django.db import models
import uuid
# Create your models here.
class User(models.Model):
    FEMALE = 'F'
    MALE = 'M'
    USER_GENDER_CHOICES = (
        (FEMALE, 'female'),
        (MALE, 'male'),
    )
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=64)
    gender = models.CharField(max_length=1, choices=USER_GENDER_CHOICES, default=FEMALE)
    password = models.CharField(max_length=128)
    description = models.TextField(max_length=1024)
  • 执行makemigrations:
eldon@ubuntu:~/github/ColusLifeDemo/Server$ python manage.py makemigrations
Migrations for 'coluslife':
  coluslife/migrations/0001_initial.py:
    - Create model Location
    - Create model User
    - Create model UserLocation
  • 初始化数据库:
eldon@ubuntu:~/github/ColusLifeDemo/Server$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, coluslife, contenttypes, sessions
Running migrations:
  Applying coluslife.0001_initial... OK
mysql> show tables;
+----------------------------+
| Tables_in_coluslife        |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
| location                   |
| user                       |
| user_location              |
+----------------------------+
13 rows in set (0.00 sec)

创建超级用户:

eldon@ubuntu:~/github/ColusLifeDemo/Server$ python manage.py createsuperuser
Username (leave blank to use 'eldon'): admin
Email address:
Password:
Password (again):
Superuser created successfully.
  • 启动服务:
eldon@ubuntu:~/github/ColusLifeDemo/Server$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
January 22, 2017 - 09:12:43
Django version 1.10.5, using settings 'Server.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

登入管理界面:

访问:http://127.0.0.1:8000/admin
控制界面1 控制界面2

修改admin.py使自定义model支持管理员操作:

# vim coluslife/admin.py
from django.contrib import admin
from coluslife.models import *
# Register your models here.
admin.site.register(User)
admin.site.register(Location)
admin.site.register(UserLocation)

重新启动服务,登入管理界面后,即可看到自己增加的数据库表:

控制界面3

参考资料:

相关文章

  • 基于Django搭建web app框架

    Django安装: 查看Django版本: 使用Django创建项目(project): 创建应用(app): 修...

  • Python实战开发之Django (一)

    前言 Django是用Python语言编写的轻量级Web应用框架,大多数基于Python搭建的网站或APP都使用D...

  • Django入门学习Day01:环境搭建

    为什么要学习Django? Django是一个用python编写的Web框架。Web框架是一种软件,基于web框架...

  • CVE-2019-14234 Django JSONField

    0x01简介 Django是一款广为流行的开源web框架,由Python编写,许多网站和app都基于Django开...

  • Django入门之简介000

    前言及背景特点 Django是一个基于Python编写的开放源代码的Web应用框架。Web框架是一种基于web框架...

  • Django入门与实践

    Django 简介 Django基于python的高级web开发框架。Django遵守BSD版权,初次发布于200...

  • Django简介

    Django是由Python语言写的开源web开发框架。 Django的框架设计基于MVC(Model-Views...

  • Django-01-helloworld

    1.简介 web框架,快速开发网站,提供内置服务器 2.环境搭建 本教程系列基于python 2.7和django...

  • Djiango

    Django是一个用 Python 编写的 Web 框架。Web 框架是一种软件,基于web框架可以开发动态网站,...

  • Django

    PythonWeb框架要点、Django介绍、工程搭建、配置、静态文件与路由 1.Python Web 框架要点 ...

网友评论

    本文标题:基于Django搭建web app框架

    本文链接:https://www.haomeiwen.com/subject/dmnubttx.html