1、安装django
pip install django
2、创建Django项目
django-admin startproject my_project1
(Pycharm也可以创建。如果用Pycharm创建,记得settings.py中的DIR templates 删除。 )
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [], # 删除
'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',
],
},
},
]
3、创建app & 注册:python manage.py startapp my_app
# settings.py文件
INSTALLED_APPS = [
...
'my_app.apps.MyAppConfig'
]
4、配置 静态文件路径 & 模板的路径(放在app目录下)。
5、配置数据库相关操作(MySQL)
(1)第三方模块(django3版本):
pip install mysqlclient
(2)自己先去MySQL创建一个数据库,配置数据库连接settings.py
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
# }
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_pj', # 数据库名字
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1', # 那台机器安装了MySQL
'PORT': 3306,
}
}
(3)在app下的models.py中编写
from django.db import models
class Admin(models.Model):
""" 管理员 """
username = models.CharField(verbose_name="用户名", max_length=32)
password = models.CharField(verbose_name="密码", max_length=64)
def __str__(self):
return self.username
class Department(models.Model):
""" 部门表 """
title = models.CharField(verbose_name='标题', max_length=32)
def __str__(self):
return self.title
(4)执行两个命令
>>>python manage.py makemigrations
>>>python manage.py migrate
6、其他操作
-
在 urls.py ,路由 ( URL 和 函数的对应关系)。
-
在views.py,视图函数,编写业务逻辑。
-
templates目录,编写HTML模板(含有模板语法、继承、
{% static 'xx'%}
) -
ModelForm & Form组件,在我们开发增删改查功能。
-
生成HTML标签(生成默认值)
-
请求数据进行校验。( 钩子方法,def clean_password(self) )
-
保存到数据库(ModelForm)
-
获取错误信息。
-
-
Cookie和Session,用户登录信息保存起来。
-
中间件,基于中间件实现用户认证 ,基于:
process_request
。
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse,redirect
'''中间件:登录拦截器'''
class AuthMiddleware(MiddlewareMixin):
def process_request(self,request):
# 排除那些不需要登录就能访问的页面 (完整的url地址为:https:localhost:8080/login/)
# request.path_info 获取当前用户请求的URL: /login/
if request.path_info in ["/login/","/image/code/"]: # 获取当前用户请求的URL /login/
return
# 1.读取当前访问的用户的session信息,如果能读到,说明已登陆过,就可以继续向后走。
info_dict = request.session.get("info") # 用户的session信息
# print(info_dict) # {'id': 8, 'name': 'root'}
if info_dict:
return
# 2.到这说明没有登录过,重定向到登录页面
return redirect("/login/")
7、ORM操作
8、使用文件数据库:E:\python\django\django_db_sqlites3
(1)创建django项目:django-admin startproject mysite(或用pycharm直接创建)
(2)创建app:python manage.py startapp my_app
注册app:
# settings.py文件
INSTALLED_APPS = [
...
'my_app.apps.MyAppConfig'
]
(3)在models.py中编写数据库表:
from django.db import models
class Admin(models.Model):
""" 管理员 """
username = models.CharField(verbose_name="用户名", max_length=32)
password = models.CharField(verbose_name="密码", max_length=64)
def __str__(self):
return self.username
class Department(models.Model):
""" 部门表 """
title = models.CharField(verbose_name='标题', max_length=32)
def __str__(self):
return self.title
(4)执行两个命令:
>>>python manange.py makemigrations
>>>python manange.py migrate
(5)会在项目中自动创建一个文件数据库,他人可以在项目中直接使用
(6)在pycharm中打开db.sqlite3文件数据库,把db.sqlite3拖进右边的Datebase中,然后点击下载数据库驱动,即可打开文件数据库
(7)在表中操作数据
9、想要去数据库中获取数据时:对象/字典
# 对象,当前行的所有数据。
row_object = models.Order.objects.filter(id=uid).first()
row_object.id
row_object.title
# 字典,{"id":1,"title":"xx"}
# values("id","title") 表示只查询这些属性
row_dict = models.Order.objects.filter(id=uid).values("id","title").first()
# queryset = [obj,obj,obj,]
queryset = models.Order.objects.all()
# queryset = [ {'id':1,'title':"xx"},{'id':2,'title':"xx"}, ]
queryset = models.Order.objects.all().values("id","title")
# queryset = [ (1,"xx"),(2,"xxx"), ]
# values_list获取的是一个个元组
queryset = models.Order.objects.all().values_list("id","title")
10、一些常用的网站:
(1)BootStrap样式:全局 CSS 样式 · Bootstrap v3 中文文档 | Bootstrap 中文网
(2)武沛齐的django基础教程:Python之路【第十六篇】:Django【基础篇】 - 武沛齐 - 博客园
(3)图像验证码:Python生成随机验证码 - 武沛齐 - 博客园
(4)图表网站echarts:Handbook - Apache ECharts
https://echarts.apache.org/examples/zh/editor.html?c=line-stack
(5)图标网站highcharts:1 分钟上手 Highcharts | Highcharts 使用教程