Python Django Web开发实战:从入门到上线 Django是一个高效且易于上手的Web开发框架。它内置了很多强大的功能,例如路由系统、模板引擎、ORM等。同时它还有很多第三方模块和插件可以使用,使得Web应用的开发变得更加快捷方便。 在这篇文章中,我们将会学习如何使用Django进行Web开发,从入门到上线。 准备工作 首先我们需要安装Python环境和Django。建议使用Python3,因为Python2已经不再被官方维护。 安装Python环境: 在官网下载Python3,安装即可。 安装Django: 使用pip命令安装Django: pip install Django 创建Django项目 在命令行中输入以下命令,创建一个新的Django项目: django-admin startproject myproject 其中myproject为项目名称,可以自定义。 创建Django应用 在命令行中进入myproject目录,输入以下命令,创建一个新的Django应用: python manage.py startapp myapp 其中myapp为应用名,可以自定义。 配置Django应用 打开myproject/settings.py文件,修改以下内容: - 将myapp添加到INSTALLED_APPS列表中 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', ] - 设置数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } 这里我们使用了SQLite数据库,当然你也可以使用其他数据库,例如MySQL。 创建模型 模型是Django中的一个重要概念,它是ORM的核心。在Django中,我们可以通过定义模型类来创建数据库表。在myapp/models.py文件中定义模型类如下: from django.db import models class Blog(models.Model): title = models.CharField(max_length=100) content = models.TextField() pub_date = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title 这里我们定义了一个Blog模型类,它包含了三个字段:标题、内容和发布时间。其中,pub_date字段使用了auto_now_add选项,表示在创建对象时自动将该字段设置为当前时间。 创建数据库表 在命令行中输入以下命令,创建数据库表: python manage.py makemigrations python manage.py migrate 这样就可以将模型类映射到数据库表中了。 创建管理员用户 在命令行中输入以下命令,创建管理员用户: python manage.py createsuperuser 按照提示输入用户名、电子邮件地址和密码,即可创建管理员用户。 创建视图 视图是Django中的另一个重要概念,它决定了Web应用程序如何响应请求。在myapp/views.py文件中定义视图函数如下: from django.shortcuts import render from django.http import HttpResponse from .models import Blog def index(request): blogs = Blog.objects.all() return render(request, 'index.html', {'blogs': blogs}) 这里我们定义了一个index视图,它将所有的Blog对象查询出来,并渲染到模板中。 创建模板 模板是Django中用于显示HTML页面的组件。在myapp/templates目录中创建index.html文件,编写HTML页面如下: {% for blog in blogs %}{{ blog.title }}
{{ blog.content }}
{{ blog.pub_date }}
{% endfor %} 这里我们使用了Django模板语言来动态地生成HTML页面。 配置URL URL是Django中用于路由请求的组件。在myproject/urls.py文件中配置URL如下: from django.contrib import admin from django.urls import path from myapp import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.index), ] 这里我们将根URL映射到了index视图。 运行Django应用 在命令行中输入以下命令,启动Django应用: python manage.py runserver 然后在浏览器中访问http://127.0.0.1:8000/即可看到我们编写的页面了。 部署Django应用 在开发完成后,我们需要将Django应用部署到生产环境中。这里我们使用Nginx和uWSGI来部署Django应用。 安装Nginx和uWSGI: sudo apt-get install nginx pip install uwsgi 配置Nginx: 在/etc/nginx/sites-available目录下创建myproject文件,写入以下内容: server { listen 80; server_name example.com; location / { include uwsgi_params; uwsgi_pass unix:/tmp/myproject.sock; } } 这里我们将服务器名设置为example.com,同时将请求转发到uWSGI服务器上。 配置uWSGI: 在myproject目录下创建uwsgi.ini文件,写入以下内容: [uwsgi] http-timeout = 3600 socket = /tmp/myproject.sock chmod-socket = 666 chdir = /path/to/myproject module = myproject.wsgi:application master = true processes = 4 threads = 2 这里我们将socket设置为/tmp/myproject.sock,同时开启了4个进程和2个线程来处理请求。 启动uWSGI: 在命令行中输入以下命令,启动uWSGI服务器: uwsgi --ini uwsgi.ini 重启Nginx: 在命令行中输入以下命令,重启Nginx服务器: sudo service nginx restart 现在我们的Django应用已经成功部署到生产环境中了! 总结 在这篇文章中,我们学习了如何使用Django进行Web开发,从创建项目到部署应用。Django内置了很多功能和组件,使得Web应用的开发变得更加快捷方便。希望本文能对刚开始学习Django的同学有所帮助。