python学习日记——django基础

零、环境搭建

1.python3的安装
#wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
#tar -zxvf Python-3.6.6.tgz
#cd Python-3.6.6
#./configure --prefix=安装路径
#make&&make install
2.pip3的安装
yum install python3-pip
3.Django框架安装
pip3 install django
4.sqlite升级

一、基础

1.创建django项目(即下载/部署web框架代码)
命令:django-admin startproject mysite
生成名为mysite的工程
目录结构
mysite
  mysite
    settings.py //
    urls.py //
    wsgi.py //
  manage.py
2.通过manage.py文件管理项目
命令:python manage.py startapp blog
创建了名为blog的应用
目录结构
mysite
  blog
    admin.py //django提供的后台管理系统
    apps.py //django的生成app名称的文件
    models.py //操作数据库使用
    tests.py //单测使用
    views.py //存放各种函数
  mysite
    settings.py //django项目相关配置(应用、数据库等)
    urls.py //url分发
    wsgi.py //对请求(or响应)按特定规则进行封装
  manage.py
  templates //存放模板文件,从views中获取数据并回显
  static //存放css、js、img等静态文件

番外:os.path.join(路径,文件)——返回根据不同操作系统拼接的文件路径
元组中需要注意一下逗号问题
STATIC_URL = '/static/' //静态文件路径的别名,按照此处的路径才能找到文件
STATICFILES_DIRS=( //静态文件的根目录配置
  os.path.join(BASE_DIR,"static"),
)
3.render(渲染)方法——template.render(Context({"key1":value1,"key2":value2}))
return render(请求对象,模板文件名,数据)
def demo(request):
  value1="我的值会被传到网页上"
  value2="我的key值需要与页面中引用的地方相对应"
  return render(request,"index.html",{"key1":value1,"key2":value2})
番外:模板中数据引入<h1>{{key1}}</h1>
模板中文件引入<script src="{%static 'jquery-3.1.1.js'%}"></script>
return render(request,"index.html",local())——此时模板中可以使用该函数中变量的值
return redirect("/login/")——路由重定向,会改变浏览器地址栏的网址,重走新路由的渲染加载流程
4.url控制
urlpatterns = [
  path(正则,函数,别名),
]
url中分组:用小括号括起路径中的参数,参数会按顺序传递到函数中
无命名分组:
2.0之前的版本
path('admin/(d{4})$',view.fun)
2.0之后的版本
path('articles/<int:year>/<path:path>/<str:str>/', views.fun),
def fun(request,year){...} //此处的year的命名可以任意替换
有命名分组:
2.0之前的版本
path('admin/(?P<year>d{4})/(?P<month>d{2})',view.fun)
2.0之后的版本
re_path('articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[w-_]+)/', views.article_detail),
def fun(request,year,month){...} //此处的year与month的命名不可改变
别名:通过{% url '别名'%}方式渲染绝对路径

url分发:url("blog/",include('blog.urls'))——以blog开头的路径需要进入blog应用下urls文件中去匹配(先匹配blog,后面的路径进入blog.urls去匹配,如:blog/article中,blog目录下urls文件中需要配置url("article",views.article))

二、model(数据库相关)

原文地址:https://www.cnblogs.com/ftxy/p/12007104.html