基础使用"/>
django基础使用
1.环境搭建
创建虚拟环境
python -m venv d:\venv1218
在虚拟环境中
venv1218\Lib放的是标准库 如os,sys, math
venv1218\Lib\site-packages放的是第三方包,如pandas numpy
venv1218\Scripts里放的是各种命令
python.exe
pip.exe
activate 激活虚拟环境
deactivate 关闭虚拟环境
djngo-admin.exe scrapy.exe(后续会添加的命令)
windows系统环境变量中path里的第一个会变成d:\venv1218\Scripts
所以在此时输入python
windows查找python时会首先查到d:\venv1218\Scripts\python.exe
2.安装
(1)cmd中 激活虚拟环境
运行activate.bat
(2)安装django
pip install django
(3)创建django项目
cd到目标路径
创建django项目文件夹
django-admin startproject mydjango01
(4)导入pycharm
3.配置应用
创建子应用
python manage.py startapp denglu
python manage.py startapp zhuce
注册子应用
项目文件夹/与项目文件夹同名的文件夹/settings.py
配置参数都在这个settings.py里
在INSTALLED_APPS里添加应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'denglu',
'zhuce']
配置时间
在setting.py中
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
4.配置数据库
1.在项目同名文件夹下
settings.py中配置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django01',
'HOST':'192.168.220.129',
'PORT':3306,
'USER':'test01',
'PASSWORD':'123456'}}
__init__.py中导入mysql操作模块
import pymysql
pymysql.install_as_MySQLdb()
2.设计表
在对应app的models.py中创建类
#表1
class PeopleInfo(models.Model):
#主键会在python manage.py makemigrations时自动生成
name = models.CharField(max_length=10)
age = models.IntegerField()
height = models.IntegerField()
bloodtype = models.CharField(max_length=1)
merriage = models.BooleanField()
#表2
class FriendInfo(models.Model):
name = models.CharField(max_length=10)
age = models.IntegerField()
3.在对应app的admin.py中注册model
from django.contrib import admin
from girls.models import GirlInfo,FriendInfo
# Register your models here.
admin.site.register(GirlInfo)
admin.site.register(FriendInfo)
注册后在127.0.0.1:8000/admin中能看到数据库
4.模型迁移
生成迁移文件
python manage.py makemigrations app名
会在对应app的文件夹中的migrations文件夹生成迁移文件
会自动在表中生成主键
迁移
python manage.py migrate
在mysql中会生成相应的数据库(可以提前手动创建,但要确保键与model里的一致)
如果想要重新建表:
1.删除migrations里的内容
2.删除数据库中原本的表
3.删除数据库中django_migrations里相关的记录
如果里面有之前创建的记录
在python manage.py migrate时会提示No migrations to apply
5.配置视图view
在app的views.py中定义视图
视图中的每一个函数就是视图函数
视图函数定义一个页面的业务逻辑和响应
后端开发的最主要工作就是写视图函数
用ORM框架操作数据库
6.配置路由
定义不同的url导向不同的视图
(1)在项目同名文件夹的urls.py中
定义对应url导向的app
urlpatterns = [path('admin/', admin.site.urls),path('girls/', include('girls.urls')) ]
#匹配 127.0.0.1:8000/girls/指向名为girls的app文件夹中的urls.py
(2)在对应app的文件夹中的urls.py
定义对应url导向的对应views.py里定义的视图函数
from django.urls import path,include,re_path
from girls import views
from django.contrib import admin
urlpatterns = [
path(r'p1/', views.page01, name='huangtu01'),
path(r'p2/', views.girls_height02, name='huangtu02'),
path(r'p3/', views.session_set, name='session_set'),
path(r'p4/', views.session_get),
path(r'p5/', views.CenterView.as_view(), name='CenterView'),
path(r'p6/', views.CenterView.as_view()),
path(r'p7/', views.Showinfo01.as_view(), name='showinfo01'),
path(r'p8/', views.TemplateJiCheng.as_view(), name='showinfo02'),
path(r'p9/', views.Jinja2use.as_view(), name='Jinja2use'),
path(r'p10/', views.csrf01.as_view(), name='csrf01'),
path(r'p11/', views.csrf02.as_view(), name='csrf02'),
path(r'p12/', views.csrf03.as_view(), name='csrf02'),
#re_path('^(people)_(height)$', views.people_height), #正则匹配
#re_path(r'^(?P<p2>\d+)/(?P<p1>\d+)$',views.girls_weight)
]
7.配置模板template
在项目根目录建立template文件夹 用来放html文件
在项目settings.py中定义template的路径
TEMPLATES = [{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'template',], # 定义模板文件夹的路径
'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',],
},},]
8.创建管理员账号
非必须 可以方便看到所连接数据库中的数据
python manage.py createsuperuser
admin
admin@126
123456
127.0.0.1:8000/admin登录
9.运行django服务
python manage.py runserver 127.0.0.5:9999
python manage.py --help 查看帮助
在浏览器中打开127.0.0.5:9999
更多推荐
django基础使用
发布评论