Django 常用操作笔记
好久没用 Django 了,最近准备新做一些小项目,所以重新拾起来。记录一下常见的使用 Django 的操作。
ref: 参阅 Django 官方文档 https://docs.djangoproject.com/zh-hans/3.2/intro/tutorial01/
# 创建项目
django-admin startproject mysite
会创建一个 mysite 的项目和目录
# 修改项目 settings
有一些配置需要修改一下。修改 settings.py
文件。
ALLOWED_HOSTS = [
'*',
]
# 默认数据库是 sqlite,如果要使用其他数据库,需要修改配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名字',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': '地址',
'PORT': '端口',
}
}
# 可以自己修改时区和language code
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
如果是 mysql 数据库的话,貌似由于 python3 的原因,需要配置一下 pymysql 作为驱动。pip 安装一下 pymysql,然后修改项目文件夹里的 __init__.py
,加入这两句。
import pymysql
pymysql.install_as_MySQLdb()
2
# 创建 app
执行命令,新建一个名为 poll 的app。
python manage.py startapp poll
创建后,如果要用到这个app,需要在 settings.py
里注册一下。修改:
INSTALLED_APPS = [
'poll.apps.PollConfig', # 在这里加上你的app,这样就会根据这个Config里面的内容来配置app了
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
2
3
4
5
6
7
8
9
10
修改 poll/views.py
。
from django.http import HttpResponse
# Create your views here.
def index(req):
return HttpResponse('hello django')
2
3
4
5
6
7
在 poll 目录里面,新建一个 urls.py
文件,将 url 模式与 view 关联起来。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
2
3
4
5
6
7
在整个项目的 urls.py 里面,include 一下 poll app 的 url,也就是将总的 url 和 poll app 的 url 做一个关联。
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
2
3
4
5
6
7
# 运行 debug run
python manage.py runserver 8888
指定一个端口号,就可以跑起来了。访问浏览器,输入 localhost:8888/polls/
# 数据库初始化
运行命令将数据库初始化(主要是为默认提供的 auth 、session 之类的功能完成建表)。
# 生成migration脚本
python manage.py makemigrations
# 执行数据库操作
python manage.py migrate
2
3
4
# 设置管理员后台
管理后台默认通过 /admin
路径进入,需要先创建一个管理员账号。
python manage.py createsuperuser
按照提示进行设定即可。注意创建管理员账号前,需要完成一次初始化的数据库 migrate。
# 创建 model
在 poll=/models.py
里面可以新建 model
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
2
3
4
5
6
7
细节参考文档啦。创建 model 后,可以进行 makemigrations 和 migrate。注意,这个 poll app 应该要在前面的步骤中完成 INSTALLED_APPS 里的注册才可以。