用Django开发网络服务
首先
这篇文章是关于我开发使用Django框架的Web应用程序时的笔记。
對於選擇 Django 的原因
首先,我希望开发一个C到C的Web应用程序,并根据以下语言和框架的观点进行选择。
-
- 人気がある
-
- 将来性がある
- 簡単
最后选择了Ruby和Python,但由于Python在机器学习方面更强大,而且相比于”Ruby on Rails”来说,”Django”更易于理解,因此决定使用Django来开发。
有关Django
Django的文档很完善,可以通过完成以下链接中的教程来全面学习。
环境
$ python --version
Python 3.7.0
这一次的进展
在创建网络服务的过程中,将遇到的问题分几次记录下来。
本次记录包括从安装Django到简单页面的展示。
-
- Django安装
-
- 项目创建
-
- 数据库创建
-
- 启动开发服务器
-
- 应用创建
-
- 视图、URL创建
- 页面显示
1. 安装Django
使用以下命令安装Django。
$ pip install django
2019年12月,Django发布了3.0版本。这次使用了最新版而没有指定特定版本。
$ pip show django
Name: Django
Version: 3.0.7
2. 创建项目
使用”startproject [项目名称]”命令创建项目。这次我们以”mysite”为项目名称。
$ django-admin startproject mysite
创建项目后将生成以下文件。
mysite/mysite/asgi.py
/__init__.py
/settings.py
/urls.py
/wsgi.py
/manage.py
3. 创建数据库
在创建项目时会生成一个名为”settings.py”的文件用来配置数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
默认情况下,使用的是SQLite3,但也支持MySQL、Oracle和PostgreSQL。只需更改此处的设置,就可以更改使用的数据库。本次将选择默认的”SQLite3″数据库。
在项目目录(mysite)中切换到创建表,然后执行迁移命令。
$ python manage.py migrate
稍后将进行描述,Django可以通过创建模型并执行以下命令来在数据库中创建表格。
– python manage.py makemigrations
– python manage.py migrate
4. 启动开发服务器
在这里,可以确认Django是否启动。
Django有一个启动开发服务器的命令,通过执行该命令可以在不需要准备web服务器的情况下进行测试。
$ python manage.py runserver
如果在浏览器中访问“http://127.0.0.1:8000/”,并显示以下页面,则表示成功。
创建应用程序
本项目创建一个名为”polls”的应用程序(功能)。
$ python manage.py startapp polls
创建应用程序后,将创建以下文件。
mysite/polls/__init__.py
admin.py
apps.py
migrations/__init__.py
models.py
tests.py
views.py
6. 创建视图和 URL
首先,为了显示简单的界面,需要编辑视图(view)和URL。与django教程相同。
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
通过这个,当显示polls/时,将调用polls/view.py中的index并将其内容显示在屏幕上。
画面表现
再次启动开发服务器。
$ python manage.py runserver
结束 (Jieshu)
下一步是创建模型和引入引导程序。