python框架(django⼊门·)
软件框架
数据库系统基础简介软件框架(software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。 [1]
框架的功能类似于基础设施,与具体的软件应⽤⽆关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运⽤和业务逻辑。这样的软件应⽤可以在⽀持同⼀种框架的软件系统中运⾏。
简⽽⾔之,框架就是制定⼀套规范或者规则(思想),⼤家(程序员)在该规范或者规则(思想)下⼯作。或者说使⽤别⼈搭好的舞台来做编剧和表演。
2、djangoDemo/init.py: ⼀个空⽂件,声明所在⽬录的包为⼀个Python包
3、djangoDemo/settings.py: 管理项⽬的配置信息
4、djangoDemo/urls.py: 声明请求url的映射关系
5、djangoDemo/wsgi.py: python程序和web服务器的通信协议
6、manage.py: ⼀个命令⾏⼯具,⽤来和Django项⽬进⾏交互,如前⾯创建项⽬就⽤到了该⽂件。
项⽬配置⽂件–setting.py
setting.py ⽂件⽤来配置整个项⽬,⾥⾯的字段⾮常多,所以在开始之前有必要先都了解⼀下默认的配置有哪些
import os
项⽬的相对路径,启动服务的时候会运⾏这个⽂件所在路径的manage.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
安全密钥
SECRET_KEY = ‘l&!v_npes(!j82+x(44vt+h&#ag7io2x&shnf*9^8fv0d63!0r’
是否开启Debug
DEBUG = True安卓apk签名修改
允许访问的主机ip,可以⽤通配符*
ALLOWED_HOSTS = []
Application definition
⽤来注册App 前6个是django⾃带的应⽤
终极代码在线观看免费完整版INSTALLED_APPS = [
‘ib.admin’,
‘ib.auth’,
‘ttypes’,
‘ib.sessions’,
‘ssages’,
‘ib.staticfiles’,
]
中间件 ,需要加载的中间件。⽐如在请求前和响应后根据规则去执⾏某些代码的⽅法
MIDDLEWARE = [
‘django.middleware.security.SecurityMiddleware’,
‘ib.sessions.middleware.SessionMiddleware’,
‘django.middlewaremon.CommonMiddleware’,
‘django.middleware.csrf.CsrfViewMiddleware’,
‘ib.auth.middleware.AuthenticationMiddleware’,
‘ssages.middleware.MessageMiddleware’,
‘django.middleware.clickjacking.XFrameOptionsMiddleware’,
]
指定URL列表⽂件 ⽗级URL配置
ROOT_URLCONF = ‘djangoDemo.urls’
加载⽹页模板路径
TEMPLATES = [
{
‘BACKEND’: ‘plate.backends.django.DjangoTemplates’,
‘DIRS’: [],
‘APP_DIRS’: True,
‘OPTIONS’: {
‘context_processors’: [
‘t_processors.debug’,
‘quest’,
‘t_processors.auth’,
‘ssages’,
],
},
},
]
WSGI的配置⽂件路径
WSGI_APPLICATION = ‘djangoDemo.wsgi.application’
数据库配置 默认的数据库为sqlite
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.sqlite3’,
‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),
}
}
相关密码验证
AUTH_PASSWORD_VALIDATORS = [
{
‘NAME’: ‘ib.auth.password_validation.UserAttributeSimilarityValidator’, },
{
‘NAME’: ‘ib.auth.password_validation.MinimumLengthValidator’,
},
{
‘NAME’: ‘ib.auth.password_validation.CommonPasswordValidator’, },
{
‘NAME’: ‘ib.auth.password_validation.NumericPasswordValidator’,
},
]
语⾔设置 默认英语, 中⽂是zh-hans
LANGUAGE_CODE = ‘en-us’
时区设置,中国的是:Asia/Shanghai
TIME_ZONE = ‘UTC’
i18n字符集是否⽀持
USE_I18N = True
USE_L10N = True
是否使⽤timezone
保证存储到数据库中的是 UTC 时间;
在函数之间传递时间参数时,确保时间已经转换成 UTC 时间;
USE_TZ = True
静态⽂件路径
100深夜看黄禁用免费STATIC_URL = ‘/static/’
配置⽂件的数据库
⽀持SQLite 3(默认)、PostgreSQL 、MySQL、Oracle数据库的操作
python入门教程app# 默认是SQLit 3 的配置
DATABASES ={
'default':{
'ENGINE':'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR,'db.sqlite3'),
}
}
# MySQL的配置
DATABASES ={
'default':{
'ENGINE':'django.sql',
'NAME':'库名',#注意这⾥的数据库应该以utf-8编码
'USER':'⽤户',
'PASSWORD':'密码',
'HOST':'localhost',
'PORT':'3306',
}
}
# 对于python3的使⽤者们还需要再加⼀步操作
# 由于Django内部连接MySQL时使⽤的是MySQLdb模块,⽽python3中还⽆此模块,所以需要使⽤pymysql来代替
# 如下设置放置的与project同名的配置的 __init__.py⽂件中
import pymysql
pymysql.install_as_MySQLdb()
# PostgreSQL配置
DATABASES ={
'default':{
'NAME':'app_data',
'ENGINE':'django.db.backends.postgresql_psycopg2',
'USER':'XXX',
'PASSWORD':'XXX'
}
# Oracle配置
DATABASES ={
'default':{
'ENGINE':'django.acle',
'NAME':'xe',
'USER':'a_user',
'PASSWORD':'a_password',
'HOST':'',
'PORT':'',
}
}
Django框架对于开发者⽽⾔⾼度透明化,对于不同数据库的具体使⽤⽅法是⼀致的,改变数据库类型只需要变动上述配置即可。
静态⽂件添加(static)
⾸先在项⽬根⽬录下创建static⽬录
接着在settings.py ⽂件下添加
STATIC_URL = ‘/static/’ # 默认已添加,使⽤静态⽂件时的前缀
STATICFILES_DIRS = (
os.path.join(BASE_DIR,‘static’), #⾏末的逗号不能漏
)
在template中就可以导⼊static⽬录下的静态⽂件
每次新建⼀个App我们需要将其在settings.py⽂件中的INSTALLED_APPS⾥进⾏注册,这样程序才能够到这个服务
INSTALLED_APPS =[
'ib.admin',
'ib.auth',
'ttypes',
'ib.sessions',
'ssages',
'ib.staticfiles',
'app_demo',# 注册新创建的应⽤app
]
三、 Django 路由系统
URL配置(URLconf)就像Django 所⽀撑⽹站的⽬录。它的本质是URL模式以及要为该URL模式调⽤的视图函数之间的映射表;你就是以这种⽅式告诉Django,对于这个URL调⽤这段代码,对于那个URL调⽤那段代码。URL的加载是从配置⽂件中开始。
f.urls import url
urlpatterns =[
url(正则表达式, views视图,参数,别名),]
命名空间模式
即使不同的APP使⽤相同的URL名称,URL的命名空间模式也可以让你唯⼀反转命名的URL
f.urls import url, include
urlpatterns =[
url(r'^app01/', include('app01.urls', namespace='app01')),
url(r'^app02/', include('app02.urls', namespace='app02')),
]
f.urls import url
from app01 import views
app_name ='app01'
urlpatterns =[
url(r'^(?P<pk>\d+)/$', views.detail, name='detail')
]
f.urls import url
from app02 import views
app_name ='app02'
urlpatterns =[
url(r'^(?P<pk>\d+)/$', views.detail, name='detail')
]
四、 Django Views(视图函数)
http请求中产⽣两个核⼼对象:
http请求:HttpRequest对象ant打包jar命令
http响应:HttpResponse对象
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论