标签:cat 管理器 htm 模板 logging mvc ack asi abs
目录
Django 框架简介
# 法一:
pip install Django==1.10.2 # 版本号
# 法二:
git clone https://github.com/django/django.git # 最新开发版
# 法三:
官网右侧下载 tar.gz 包
# 法一:
python -m django --version # 得到版本号
# 法二:
python3
>>> import django # 不报错
django-admin startproject myblog # 不报错就创建成功了
< manage.py 文件 >
# 项目管理器,与项目进行交互的命令行工具集的入口
python manage.py --help # 有很多子命令
python manage.py runserver 9999 # 启动服务,指定端口端口为 9999,不指定端口时默认为 8000
< myblog 目录 >
# 项目的一个容器
# 包含项目最基本的一些配置
< wsgi.py >
# WSGI(Python Web Server Gateway Interface)
# Python 服务器网管接口
# Python 应用与 Web 服务器之间的接口
< urls.py >
# URL 配置文件
# Django 项目中所有地址(页面)都需要我们自己去配置其 URL
< settings.py >
# 项目的总配置文件
# 里面包含了数据库、Web应用、时间等各种配置
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 整个项目的根目录
SECRET_KEY = 'hfusaf2m4ot#7)fkw#di2bu6(cv0@opwmafx5n#6=3d%x^hpl6'
# 安全码,防止跨站脚本攻击,创建项目时 Django 自动生成
DEBUG = False
# 生产中不要打开,因为错误信息会直接抛给前端用户,不友好
ALLOWED_HOSTS = ['*']
# 允许访问的客户端IP
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_q',
'sql',
'themis',
'common',
)
# 我们写的程序都要写进来
MIDDLEWARE = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'common.middleware.check_login_middleware.CheckLoginMiddleware',
'common.middleware.exception_logging_middleware.ExceptionLoggingMiddleware',
)
# 中间件
ROOT_URLCONF = 'archery.urls'
# URL 配置根文件
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'common/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',
'common.utils.global_info.global_info',
],
},
},
]
# 模板配置
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_TZ = False
# 国际化相关
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
'OPTIONS': {
'min_length': 9,
}
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# 密码认证相关
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'common/static'), ]
# 静态文件地址
# 法一:
# 进入项目中 manage.py 同级目录:
python manage.py startapp blog
# 应用名不允许与系统的模块名相同
添加应用名到 settings.py 中的 INSTALLED_APPS 里面
# 法二:
# pycharm:
工具 --> "Run manage.py Task" (option + R) --> python manage.py startapp blog
migrations/
# 数据迁移模块
admin.py
# 后台管理系统配置
apps.py
# 应用的配置
models.py
# 数据模块,使用ORM框架,类似MVC结构中的模型Models
test.py
# 自动化测试模块
# Django 提供了自动化测试功能,在这里面编写测试脚本、语句
vews.py
# 执行相应的代码所在模块
# 代码逻辑处理的主要文件
# 项目中大部分代码都在这里编写
< views.py >
from django.shortcuts import render
# 引入请求响应包
from django.http import HttpResponse
# Create your views here.
# Django 中每一个请求都由一个函数处理,参数默认约定 response
def index(response):
return HttpResponse('Hello World!')
< urls.py >
# 每个 URL 都以 url 的形式写出来
# url 函数放在 urlpatterns 列表中
# url 函数三个参数:URL,对应方法,名称
# 法一:
from django.contrib import admin
from django.urls import path
from blog import views # 新增
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index), # 新增
]
# 法二:
# 在根 urls.py 中引入 include
# 在 app 目录下创建 urls.py,格式与根 urls.py 格式相同
# 根 urls.py 中 url 函数第2个参数改为 include('blog.urls')
# 要注意两个 urls.py 中的 URL 参数,如果都有的话,访问需要两级 URL\URL\
< urls.py >
from django.contrib import admin
from django.urls import path, include # 新增 include
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', include('blog.urls')),
]
< blog/urls.py >
from django.urls import path, include
from blog import views
urlpatterns = [
path('', views.index),
]
python3 manage.py runserver
模板引擎:修改 settings.py 中 TEMPLATES 参数中 BACKEND 参数
在 views.py 中返回render()
ORM
对象关系映射(Object Relation Mapping)
实现了对象和数据库之间的映射
隐藏了数据访问的细节,不需要编写SQL语句
编写 Models
在应用根目录下创建 models.py,并引入 models 模块
创建 class,继承 models.Model,该类就是一张数据表
在 class 中创建字段
class Article(models.Model):
title = models.CharField(max_length=32, default='title')
content = models.TextField(null=True)
python manage.py makemigrations <app>
blog/migrations/0001_initial.py
- Create model Article
python manage.py migrate <app>
# Tracking file by folder pattern: migrations
# Operations to perform:
# Apply all migrations: blog
# Running migrations:
# Applying blog.0001_initial... OK
python manage.py sqlmigrate <app> <文件id>
# BEGIN;
# --
# -- Create model Article
# --
# CREATE TABLE "blog_article" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(32) NOT NULL, "content" text NULL);
# COMMIT;
python manage.py createsuperyuser
Username: admin
Email:
Password:
Password(again): # 密码8个字符以上
localhost:8000/admin
< settings.py >
LANGUAGE_CODE = 'zh-hans'
配置应用
在 app 下 admin.py 中引入 app 的 models 模块
编辑 admin.py
admin.site.register(models.Article)
标签:cat 管理器 htm 模板 logging mvc ack asi abs
原文地址:https://www.cnblogs.com/David-domain/p/11173372.html