JetBrains PyCharm Community Edition编写
1.首先创建一个项目,命名为mysite
django-admin startproject mystie
2.在该项目下创建一个App, 以 student 为例
点击PyCharm工程中的Terminal
D:\PycharmProjects\mystie>python manage.py startapp student
3.在项目mysite中配置setting
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'student.apps.StudentConfig',
]
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'localhost',
'PORT': '3306',
}
}
....
注销 # 'django.middleware.csrf.CsrfViewMiddleware',
....
#添加静态文件存放存放地址 'DIRS': [os.path.join(BASE_DIR, 'static')],
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'static')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
4.在mysite中配置 urls
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('stu/', include('student.urls')),
path('admin/', admin.site.urls),
]
注意在student中新建一个空的urls.py
5.在Student App中models中创建一个Student模型类
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=30)
no = models.CharField(max_length=20, primary_key=True)
def __str__(self):
return "%s,%s号" % (self.name, self.no)
6.创建好models类后,并进行数据库迁移
python manage.py makemigrations
python manage.py migrate
7.创建Student 的路由urls , 并对其进行增删改的配置
from django.urls import path, include
from student import views
urlpatterns = (
path('list', views.index),
path('add', views.add),
path('del', views.del_stu),
path('save', views.save)
)
8.编写views 视图函数
from django.shortcuts import render
from student.models import Student
def index(request):
stu_list = Student.objects.all()
return render(request, 'stu.html', {'data': stu_list})
def add(request):
if request.method == 'POST':
name = request.POST.get("name")
no = request.POST.get("no")
stu = Student(name=name, no=no)
stu.save()
return index(request)
def del_stu(request):
if request.method == 'GET':
no = request.GET.get('no')
stu = Student.objects.filter(no=no)
stu.delete()
return index(request)
def save(request):
if request.method == 'POST':
name = request.POST.get('name')
no = request.POST.get('no')
stu = Student.objects.get(no=no)
stu.name = name
stu.no = no
stu.save()
return index(request)
9. 在Pycharm中启动
D:\PycharmProjects\mystie>python manage.py runserver
10.运行web服务
127.0.0.1:8000/stu/list
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/stu/add" method="post">
名字:<input type="text" name="name">
编号:<input type="text" name="no">
<input type="submit" value="插入">
</form>
<ul>
{% for student in data %}
<li>{{student.no}}:{{student.name}} <a href="/stu/del?no={{student.no}}">删除</a>
</li>
{% endfor %}
</ul>
</body>
</html>