django安装
看以使用anaconda 进入虚拟环境后,用 pip install django来进行安装
安装后会生成两个东西,一个是django-admin.exe,一个是第三方包
环境目录
python环境路径
/ ...
/ scripts
/ django-admin.exe //用于帮助我们操作django项目
/ lib
/ ...
/ site-package //第三方模块
/ ...
/ pytorch
/ ...
/ django
/ ...
/ python.exe
/ ...
django创建
打开anaconda或者别的终端工具,cd到要创建项目的文件目录下
创建语句
创建一个新的项目: django-admin startproject [NAME]
就会在当前文件夹创建一个django_pro文件
然后cd进入到django_pro的目录下
该目录下会有一个同名文件夹 和 manage.py
同名文件夹下有下列文件
项目结构
结构如下:
django_pro
---django_pro
---__init__.py //表示该文件夹是一个包
---asgi.py // 接收网络请求
---settings.py // 注册app,数据库连接,配置文件
---urls.py // 管理url跳转
---wsgi.py // 接收网络请求
---manage.py
App创建
创建一个新的应用(不是一个软件那种App,相当于实现该项目的一部分功能):
创建语句
在命令行界面,当前django_pro项目文件夹下输入
python manage.py startapp [APP_NAME]
目录下会出现一个新的[APP_NAME]文件夹,这里是App
内部文件如下
注册app
创建app后,还需要在settings.py里注册app,才能使用
先找到[APP_NAME]\apps.py,在之前用语句创建app时会在apps.py自动生成该函数
找到settings.py,在列表变量INSTALLED_APPS中,添加对应的函数路径
[APP_NAME].apps.[APP_NAME]Config
然后一般会在新应用文件夹下创建一个template文件夹用于存放html页面
整个django的大概框架与使用:
django_pro
---django_pro
---__init__.py // 表示该文件夹是一个包
---asgi.py // 接收网络请求,基本不动
---settings.py // --常用: 注册app,数据库连接,配置文件
---urls.py // --常用: 管理url跳转
---wsgi.py // 接收网络请求,基本不动
---App
---migrations // 数据库变更记录,自动生成文件,基本不动
---__init__.py // 表示该文件夹是个包
--- admin.py // django提供的后台管理,基本不动
---apps.py // app启动相关,基本不动
---models.py // --常用: 对数据库进行操作
---tests.py // 用于单元测试
---views.py // --常用:攥写视图函数
---manage.py
django编写
urls.py 与 views.py
urls.py: 管理url请求与响应
views.py: 编写响应函数
在网页应用中,页面跳转或请求都需要用到url,urls.py是专门管理url的
使用:在urls.py里找到urlpatterns,添加一行path(’ ', ),
对于path(‘x’, y)
x是url
y是对应views.py 里的函数
django运行
第一次运行时,先运行下行命令进行初始化后
python manage.py migrate
运行:在终端项目根目录下输入如下命令,即可启动django项目
python manage.py runserver
templates文件和static文件
tamplate文件用于存放html代码
static文件用于存放css和js代码
templates
templates一般放在对应的APP目录下
-如果在templates创建在工程根目录,默认是不起作用的,需要在settings.py中进行配置。
-还有如果多个app下都有templates目录,django会按照app的注册顺序逐个templates目录查找
-如果根目录中模板名和app中模板名一样,那么会优先使用根目录中模板
例子:一个名为restaurant的项目,有accounts, OrderSystem两个app
查找顺序如下:
先看根目录下的templates,再看包里的内置页面,最后看各个应用下的页面
在根目录时,settings.py配置:主要在DIRS里加入对应路径
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [os.path.join(BASE_DIR, 'templates')], # 主要在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",
],
},
},
]
static
django中推荐用{% static %} 模板语法,来加载静态文件,这样当静态文件夹改变时不需要再修改每个引用路径。
<link rel="stylesheet" href="{% static 'style.css' %}">
就可以像这样来导入静态文件
声明static语法:
{% load static %}要写在顶部,写在html文件开头
声明static的原理:
声明static会从settings.py中的STATIC_URL去找
调用语法:{% static ‘…’ %},其中…是静态文件里的路径
修改static文件路径时,方便修改(只需要改settings.py即可,不需要一个个去修改)
配置静态文件路径
在settings.py中配置static文件
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'app/static'),
]
配置静态文件访问URL
STATIC_URL = '/static/
STATICFILES_DIRS指定了静态文件的路径
STATIC_URL指定了静态文件的访问URL。
这样在模板中可以使用{% static ‘file_path’ %}来引用静态文件,其中file_path是相对于STATICFILES_DIRS的路径。
连接MySQL数据库
找到settings.py下默认的sqlite数据库配置
删掉后添加下列代码:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 默认
'NAME': 'database_name', # 连接的数据库名称
'HOST': '127.0.0.1', # mysql的ip地址,这里是本机地址
'PORT': 3306, # mysql的端口
'USER': 'root', # mysql的用户名,一般是root
'PASSWORD': '123123' # mysql的登录密码
}
}
再找到同目录下的__init__.py
添加
import pymysql
pymysql.install_as_MySQLdb()
如果没有pymysql,还需要额外安装第三方库
pip install pymysql
后面再在有manage.py的目录下运行如下代码
python manage.py makemigrations
python manage.py migrate
来进行数据库的迁移