Django简易入门
不会吧不会吧,难道真的还有人不知道Django???接下来让我们康康
准备
Python安装
建议下载最新版,本教程使用的开发环境中Python为官方最新版本。
过于简单,不多磨叽。
pip安装
Windows的Python安装包自带pip,大多数Linux发行版亦可直接安装。
部分人可尝试下载get-pip.py
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
如果安装时提示权限不足,请在前面加sudo
Django安装
最简单的方法如下
pip install Django
python -m django --version
Hello World
在大多数语言教程中,作者会选择输出Hello World来开启Code的第一步,那么我们也先从“Hello World!“开始
创建项目
在网站开始前,我们需要创建项目,里面会包括许多东西
在bash环境下选择到你预定的项目存放目录,然后输入以下指令
django-admin startproject projectname
其中的“projectname”可以自行修改为自己想要的项目名称,名称请避免与其他Python包/Django组件冲突
此时的projectname目录的结构如下
- projectname/
- manage.py
- projectname/
- init.py
- settings.py
- wsgi.py
其中,最外层的projectname目录的命名无关紧要
- manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互
- 内层的projectname/目录是你的项目的真正的Python包。它是你导入任何东西时将需要使用的Python包的名字
- projectname/init.py:一个空文件,它告诉Python这个目录应该被看做一个Python包。
- projectname/settings.py:该Django 项目的设置/配置
- projectname/urls.py:该Django项目的URL声明;你的Django站点的“目录”
- projectname/wsgi.py:用于你的项目的与WSGI兼容的Web服务器入口
启动开发服务器
Django默认自带一个开发服务器,可以供开发者快速测试,请先跳转到manage.py所在目录然后输入以下指令
python manage.py runserver
接着,你应该看到了屏幕上输出的提示,此时你就可以访问127.0.0.1:8000了!
创建应用
有的人应该发现,现在没有model没有view,那么我们怎样才能开始网站的开发呢?
项目和应用的区别:一个应用程序是一个Web应用程序,它执行一些操作,例如Weblog系统,公共记录数据库或简单的应用程序。 项目是特定网站的配置和应用程序的集合。 项目可以包含多个应用程序。 一个应用程序可以在多个项目中。
首先请跳转到manage.py所在的目录,然后输入以下指令
python manage.py startapp appname
此时,我们的第一个应用appname就创建好了!appname可以自取
编写视图
请先打开你的应用里的views.py(项目名称/应用名称/views.py)
首先我们要导入HttpResponse
from django.http import HttpResponse
接着写一个函数
def index(request):
return HttpResponse("Hello world")
此时,我们的views.py文件内容应该是这样的
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello world")
这样我们的视图就写好了
这时,我们启动开发服务器
python manage.py runserver
会发现:- -?我写的视图哪去了
其实,熟悉PHP等语言框架的人知道,我们此时应该写路由,在Django中,我们使用URLconf
URLconf
我们目前的既定计划是:打开127.0.0.1:8000时输出“Hello World”
请打开projectname/projectname/urls.py
首先我们要导入我们的视图
from appname import views
接着修改urlpatterns,增加一行代码
path('', views.index,name = 'index'),
此时,你的urls.py应该是这样的
from django.contrib import admin
from django.urls import path
from appname import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index, name = 'index'),
]
这样,我们就可以再次启动开发服务器了!
python manage.py runserver
打开127.0.0.1:8000就可以看到“Hello World”的字样!
path函数
path()函数传入四个参数,route和view是必须的,kwargs和name是可选的。
route
route是一个包含URL模式的字符串。处理请求时,Django从urlpatterns中的第一个模式开始,并在列表中向下,比较请求的URL和每个模式,直到找到匹配的模式
view
当Django找到匹配的模式时,它会以HttpRequest对象作为第一个参数和路由中的任何“捕获”值作为关键字参数来调用指定的视图函数
kwargs
任意关键字参数可以在字典中传递给目标视图
name
命名您的URL可以让您从Django的其他地方明确地引用它,特别是在模板中。这个强大的功能使您可以对项目的URL模式进行全局更改,而只触摸单个文件
数据库配置
首先请打开projectname/projectname/settings.py
默认情况下,Django为你提供了sqlite3,如果你不擅长其他数据库并且只是想学习一下Django,可以直接跳过这一步
但有的人则不同,我们学习它就是为了在生产环境中使用,所以我们要选择一些更具可伸缩性的数据库例如PostgreSQL、MySQL,在这里我们以MySQL为主
打开settings.py后,找到DATABASES,修改为以下内容
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'HOST': 'localhost',
'USER': 'root',
'PASSWORD': 'password',
'PORT': '3306',
}
}
请根据你对数据库的配置修改相应的参数
同时,找到TIME_ZONE并设置为我们的时区
TIME_ZONE = 'Asia/Shanghai'
注意,是Shanghai,不是Beijing
接着,运行该指令
python manage.py migrate
Django自带的一些应用也使用到了数据库,你需要运行该函数创建数据表
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
这时,使用MySQL的人会发现出现了问题!提示我们没有安装MySQLdb,有的人会立刻“pip install MySQLdb”,然后发现又出现了问题!
不要继续折腾了,MySQLdb模块不支持python3,所以我们应该使用pymysql
pip install pymysql
然后打开projectname/projectname/init.py,添加以下代码
import pymysql
pymysql.install_as_MySQLdb()
接着,我们再次执行migrate命令,如果数据库配置没有问题的话,它就会自动开始数据表创建了
创建模型
数据库配置好后,我们就要开始编写模型了!
打开projectname/appname/models.py
首先我们试着创建一个简单的模型,在原有代码里加入以下内容
class User(models.Model):
UserID = models.IntegerField(default = 0)
UserName = models.CharField(max_length = 100)
UserPass = models.CharField(max_length = 300)
激活模型
首先我们要告诉Django这个应用的存在,再次打开projectname/projectname/settings.py并找到“INSTALLED_APPS”
因为AppnameConfig类位于projectname/appname/apps.py中,所以我们要这样写
'appname.apps.AppnameConfig',
实际内容请带入你的应用名称,并将这段代码加入到INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'appname.apps.AppnameConfig',
]
现在,我们还需要运行一个命令
python manage.py makemigrations
这样Django就知道了你对数据库进行了一定的修改
现在,再次运行该命令
python manage.py migrate
你添加的模型就会被创建到数据库中了!
激活Django Admin
Django默认为你提供了一个管理系统,在里面你可以可视化地修改你创建的模型
创建一个管理账号
python manage.py createsuperuser
根据提示输入你的用户名、邮箱、密码
启动测试服务器来一览后台了!
python manage.py runserver
打开127.0.0.1:8000/admin/并输入用户名、密码
不过你会发现一个问题:我创建的模型呢???
我们在创建模型后,应该为其提供接口
注册模型
打开projectname/appname/admin.py 导入你的模型类并注册
from django.contrib import admin
from .models import User
admin.site.register(User)
现在再次打开后台,就可以看到我们创建的模型了!
评论