创建一个django项目
官网下载python最新版本 配置到环境变量中
打开intlij编辑器 创建django项目
安装django:pip install django
创建django项目: django-admin startproject django01
创建djangoAPP:python manage.py startapp user
启动: python manage.py runserver
更改端口启动: python manage.py runserver 8001
更改端口启动: python manage.py runserver:0.0.0.0:8000
生成迁移文件 python manage.py makemigrations
执行秦迁移 python manage.py migrate
settings.py中配置 :
# 表示通配符 匹配所有IP 表示可以被其他任何电脑来访问我(局域网) # 上线后可以指定其他那些服务器来访问我 ALLOWED_HOSTS = ['*']
#注册APP user
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'user' ]
user views.py中定义一个函数:
from django.http import HttpResponse from django.shortcuts import render # Create your views here. def index(request): pass return HttpResponse('hello django')
django01中url.py中定义一个路径
匹配到user views.py中的一个index方法:
from django.contrib import admin from django.urls import path from user.views import * urlpatterns = [ path('index/', index), path('admin/', admin.site.urls), ]
运行 python manage.py runserver
使用子路由 一个应用对应一个子路由
写入:
from django.urls import path #子路由 from user.views import * urlpatterns = [ path('index/', index), path('index2/', index2), ]
项目django01 中urls.py使用子路由
导入 from django.urls import path,include
from django.contrib import admin from django.urls import path,include from user.views import * urlpatterns = [ # path('index/', index), # path('index2/', index2), # 使用子路由 一个应用对应一个子路由 # 参数1 第一层路由 随便起名字 建议见名知义 这里起为user #参数二 第二层路由为 include('应用名称.创建的子路由urls') path('user/', include('user.urls')), path('admin/', admin.site.urls), ]
运行 python manage.py runserver
django模型Model基本使用
from django.db import models # Create your models here. class UserModel(models.Model): name=models.CharField(max_length=30,unique=True) #对应SQL:name=varchar(30) age=models.IntegerField(default=18) sex=models.CharField(max_length=20) is_deleted=models.BooleanField(default=False)
生成迁移文件 python manage.py makemigrations
执行秦迁移 python manage.py migrate
数据库表中user_usermodel 创建完成 一般为应用名称_你创建数据库时的类名
user APP中的views.py新建视图函数
from user.models import UserModel def get_users(request): users=UserModel.objects.all() return render(request,'index.html',{'users':users})
user APP中新增路由
path('users/', get_users),
index中内容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <hr> <h1>所有用户</h1> <ul> {% for user in users %} <li>{{ user.name }},{{ user.age }},{{ user.sex }}</li> {% endfor %} </ul> </body> </html>
启动 python manage.py runserver
django的models都有哪些字段
CharField:
max_length
: 最大长度限制。
python
my_char_field = models.CharField(max_length=100)
TextField:
- 无特定参数。
python
my_text_field = models.TextField()
IntegerField:
default
: 默认值。
python
my_int_field = models.IntegerField(default=0)
FloatField:
default
: 默认值。
python
my_float_field = models.FloatField(default=0.0)
DateTimeField:
auto_now
: 每次保存对象时自动设置为当前时间。auto_now_add
: 当对象第一次被创建时设置为当前时间。
python
my_datetime_field = models.DateTimeField(auto_now=True)
BooleanField:
default
: 默认值。
python
my_bool_field = models.BooleanField(default=False)
DateField:
auto_now
: 每次保存对象时自动设置为当前日期。auto_now_add
: 当对象第一次被创建时设置为当前日期。
python
my_date_field = models.DateField(auto_now_add=True)
TimeField:
auto_now
: 每次保存对象时自动设置为当前时间。auto_now_add
: 当对象第一次被创建时设置为当前时间。
python
my_time_field = models.TimeField(auto_now=True)
FileField:
upload_to
: 指定上传文件的子目录路径。
python
my_file_field = models.FileField(upload_to='uploads/')
ImageField:
upload_to
: 指定上传图片的子目录路径。
python
my_image_field = models.ImageField(upload_to='images/')