[__项目基础__]
>检查python扩展包是否安装框架
pip list
>若未安装django框架
pip install -i http://pypi.douban.com/simple –trusted-host pypi.douban.com
[__项目启动__]
>任意盘符创建项目文件夹,在终端(cmd)输入
django-admin startproject project_name
>进入项目文件夹
cd project_name
>创建模板文件夹和静态资源文件夹
mkdir templates
mkdir static
>在项目文件夹下创建app
python manage.py startapp app_name
>>同时在templates文件夹下创建对应的app_temp_name文件夹
>>同时在static文件夹下创建对应的app_static_name文件夹
>打开项目文件夹下的项目管理文件夹
cd project_name
>>打开配置文件settings.py
文件第一行写入 import os
>>配置模板文件夹位置,在 TEMPLATES 下的 DIRS 中写入模板文件位置
os.path.join(BASE_DIR,'template/')
>>配置静态资源文件夹位置,在settings.py 中写入
STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ]
>>注册app,在 INSTALLED_APPS 中写入
'app_name.apps.App_nameConfig'
>>配置MySQL数据库连接在 DATABASES下的 default 中写入
'ENGINE': 'django.db.backends.mysql', #使用mysql数据库
'NAME': 'shanshan', # 数据库名称
'USER': 'root', # 用户名'
'PASSWORD': 'root', # 密码
'HOST': 'localhost', # 主机地址
'PORT': '3306', # 端口
>>打开同级目录下__init__.py文件,写入
import pymysql # 导入前记得检查是否已经安装了pymysql包
pymysql.version_info= (1, 4, 13, "final", 0)
pymysql.install_as_MySQLdb()
>>打开同级文件夹下urls.py文件,清空代码并写入
from django.conf.urls import url,include
urlpatterns = [
url( r'^app_name', include('home.urls') ) ,
]
>退出项目管理文件夹,进入app_name文件夹创建urls.py文件,打开并写入
from django.conf.urls import url
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url( 'index', views.index, , name='index', ) , # 同级目录下views.py中的方法
]+static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
说明:当前配置的路由为:http://127.0.0.1:8080/app_name/index
[__关于中间件与前端全局变量的相关内容__]
>在项目文件夹下,创建公共文件夹
mkdir common
>>公共文件夹下创建全局中间件文件
type nul>all_middleware.py # 以创建all_middleware.py的全局中间件文件为例:
//---------------*all_middleware.py文件内容参考start---------------//
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import redirect
from django.conf import settings
class MD1(MiddlewareMixin):
_url = settings.SELF_HOST # 注意:SELF_HOST为写在项目管理文件夹中setings.py文件下的配置
_not_check_url = settings.NOT_CHECK_URL # 注意:NOT_CHECK_URL为写在项目管理文件夹中setings.py文件下的配置
def process_request(self, request):
pass #在视图之前执行
def process_response(self,request, response):
pass # 基于请求响应,在视图之后
return response
def process_view(self,request, view_func, view_args, view_kwargs):
pass # 在视图之前执行,顺序执行
def process_exception(self, request, exception):
pass # 引发错误 才会触发这个方法
//---------------*all_middleware.py文件内容参考end---------------//
>>>同时在项目管理文件夹中setings.py文件中的 MIDDLEWARE 写入
'common.all_middleware.MD1'
>>公共文件夹下创建全局前端配置文件
type nul>template_config.py # 以创建template_config.py的全局前端配置文件为例:
//---------------*template_config.py文件内容参考start---------------//
from django.conf import settings
def get_temp_config(request):
return {
'self_host': settings.SELF_HOST # 注意:SELF_HOST为写在项目管理文件夹中setings.py文件下的配置
}
//---------------*template_config.py文件内容参考end---------------//
>>>同时在项目管理文件夹中setings.py文件中的 TEMPLATES 中的 OPTIONS 中的 context_processors 写入
'common.template_config.get_temp_config' ,
[__模型配置__]
>模型映射数据库
设置好模型app文件夹中models.py文件(不再赘述,自行百度)
进入项目文件夹,cmd命令行输入
python manage.py makemigrations
运行之后会在migrations文件夹中生成001_inital.py文件,随后输入
python manage.py migrate
>数据库映射模型
进入项目文件夹,cmd命令行输入
python manage.py inspectdb
[__Session/Cookie配置__]
>设置Session/Cookie,在项目管理文件夹下的settings.py中
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 使用服务器内存作为引擎(内存资源占满时,可能存在丢失问题)
#SESSION_ENGINE = 'django.contrib.sessions.backends.db' #默认存储方式,存储在数据库中
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db' # 使用服务器内存和数据库作为引擎(牺牲一定的性能,确保数据不丢失)
SESSION_CACHE_ALIAS = 'default' # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
SESSION_COOKIE_PATH = "/" # Session的cookie保存的路径
SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名
SESSION_COOKIE_SECURE = False # 是否Https传输cookie
SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输
SESSION_COOKIE_AGE = 60*60*24*7*2 # Session的cookie失效日期(2周)
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否关闭浏览器使得Session过期
SESSION_SAVE_EVERY_REQUEST = True # 是否每次请求都保存Session,默认修改之后才保存
>>Session操作
request.session['键'] = 值 #写Session
request.session.get('键',默认值) #根据键读取值
request.session.clear() #清除所有session中的缓存数据
request.session.flush() #清除session数据,与数据库同步
del reuqest.session['键'] #删除指定键及值
request.session.set_expiry(value) #设置session有效期,value=整数/0/None (value/关闭浏览器时/默认值两周过期)
[__项目运行__]
>运行项目
python manage.py runserver 127.0.0.1:8080
>结束项目
ctrl + c
[__补充__]
>引入重定向的包
from django.shortcuts import redirect
>post提交时候若不想进行crsf验证可在项目管理文件夹下的settings.py中
将 'django.middleware.csrf.CsrfViewMiddleware' 注释
>*注意区分项目文件夹和项目管理文件夹
>设置时区,在项目管理文件夹下的settings.py中
TIME_ZONE = 'Asia/shanghai'
Original: https://blog.csdn.net/zhoujipu/article/details/122704580
Author: Gonil
Title: Django入门总结
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/734273/
转载文章受原作者版权保护。转载请注明原作者出处!