1.新建项目
同时按上键和鼠标右键可在桌面进入cmd,输入django-admin startproject mysite新建项目,cd项目输入django-admin startapp myapp或python manage.py startapp myapp新建app。
2.配置
Mysite/setting.py下:
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
'myapp',
]
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
'DIRS': [os.path.join(BASE_DIR,'templates')],
"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",
],
},
},
]
设置时区
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
启用后台admin:
1)数据库同步
python manage.py makemigrations
2)数据迁移(建立表单)
python manage.py migrate
创建超级用户
python manage.py createsuperuser
配置url地址,mysite/urls.py:
urlpatterns = [
# path("admin/", admin.site.urls),
path('', include('myapp.urls'))
]
3.启动
1)本地访问
python manage.py runserver # 默认8000端口
python manage.py runserver 8080 # 指定端口
http://127.0.0.1:8000/
2)远程访问
python manage.py runserver 0.0.0.0:8000 # 允许他人同局域网访问
ipconfig # 获取ip地址
http://xx.xxx.xx.xxx(IPv4的网址):8000/
4.简单案例
编写我们的第一个视图,myapp/views.py:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the myapp index.")
或者:
def index(request):
return render(request, 'myapp/index.html')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>首页</h1>
<a href="{%url 'indexstu'%}">学生信息管理</a><br><br>
<a href="{%url 'pagestu' 1%}">分页学生信息管理</a><br><br>
<a href="{%url 'upload'%}">文件上传</a>
<a></a>
</body>
</html>
然后配置url,myapp/urls.py:
from django.urls import path
from . import views
urlpatterns = [
# path("admin/", admin.site.urls),
path('', views.index),
path('indexstu', views.indexstu, name='indexstu'),
建立模型,Myapp/models.py
from django.db import models
# Create your models here.
heroes = [
(0, '亚瑟'),
(1, '妲己'),
(2, '夏侯惇'),
(3, '马可波罗'),
(4, '典韦'),
(5, '钟无艳'),
(6, '高渐离'),
(7, '杨玉环'),
]
skills = [
(0, '终结'),
(1, '惩戒'),
(2, '闪现'),
(3, '疾跑'),
(4, '狂暴'),
]
class wz(models.Model):
hero = models.SmallIntegerField(choices=heroes, verbose_name='英雄')
skill = models.SmallIntegerField(choices=skills, verbose_name='技能')
激活模型,myapp/admin.py
from django.contrib import admin
from .models import wz
# Register your models here.
admin.site.register(wz)
python manage.py makemigrations # 数据库同步
python manage.py migrate # 数据迁移
美化展示,myapp/admin.py
class wzadmin(admin.ModelAdmin):
list_display = ('hero', 'skill')
admin.site.register(wz, wzadmin)