django配置

1.安装djiango

  • 先安装python解释器,注意勾选加入环境变量的配置
  • 打开命令行, pip install django
  • 找到django的安装目录:C:\Users\Administrator\AppData\Roaming\Python\Python38\Scripts;配置为环境变量

2.创建djiango目录

  • 打开命令行,进入要创建的目录路径(如d:\django)
  • 输入命令
    C:\Users\Administrator\AppData\Roaming\Python\Python38\Scripts\djiango-admin startproject Dweb1
    以上命令,如果在电脑的环境变量配置了djiango路径,则可以直接输入djiango-admin,则在 d:\django\Dweb1创建目录
  • pycharm打开project,则可以打开Dweb1目录。

3.创建app

  • (1)djiango划分各个功能模块,可通过startapp创建app文件夹设计。打开pycharm的终端,输入
    python manage.py startapp app01,则创建app成功,pycharm下面多了app01目录,并自动生成相关文件,其中views.py主要编写视图函数接收、返回html页面数据。models.py控制数据库接口
  • (2)注册app。app创建后,还需要在web目录下的settings.py配置注册下,方能识别。打开settings.py,加入:
    INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config' #app注册配置代码,app01是app名字,App01Config为apps.py文件中的类名
    ]

4.启动djiango

pycharm的运行环境配置。注意manage.py的路径

5.html的交互

-(1) 用户从浏览器客户端到views.py视图函数访问:通过项目下的urls.py,输入path,则可以访问views中的函数。

from app01 import views   #导入views文件
urlpatterns = [
    #path('admin/', admin.site.urls),
    path('news/ls', views.news) #news/ls,表示访问路径,浏览器端需要输入http://127.0.0.1:8000/news/ls
]

-(2)views.py视图文件中定义函数,本例函数为news()

from django.shortcuts import render,HttpResponse
def news(req):
   return render(req,'news.html') #该函数返回news.html文件

关于render函数
render(request, template_name, context=None, content_type=None, status=None, using=None)
request:浏览器向服务器发送的请求对象,包含用户信息、请求内容和请求方式等。
template_name:设重模板文件名,用于生成网页内容。
context:对模板上下文(模板变量)赋值,以字典格式表示,默认情况下是一个空字典。
content_type:响应内容的数据格式,一般情况下使用默认值即可。
status:HTTP状态码,默认为200。
using:设置模板引擎,用于解析模板文件,生成网页内容。

-(3)djiango是在app01中的templates中管理html文件,故需要app01新建templates目录,再新建news.html.

则html页面中python代码的内容返回views.py,经过djiango内部渲染,替换成相应字符串,再通过render返回用户浏览器,完成一次http交互。

运行项目,打开浏览器访问,则可以看到相应成果。

6.模板语法

Django 中的视图的概念是「一类具有相同功能和模板的网页的集合」,网页中需要显示python的变量、字典、数据库的数据,则需要通过Django的模板语法表示。主要是变量和标签。
假设在视图文件views.py的render函数这样构造:

from django.shortcuts import render, HttpResponse
import requests
def news(req):
    a=5
    datalist = ['hello', 'll', 'java']
    dic={"lin":500,"zh":300,"kk":250}
    return render(req, 'news.html', {"a":a,"newsList": datalist,"dic":dic})#上下文传入网页3个参数分别为a,newsList,dic

6.1变量

从上下文中输出一个值,上下文是一个类似于字典的对象,将键映射到值。变量被 {{ 和 }} 包围
网页模板语法为<p> {{ a }} </p>

6.2字典、列表

网页端语法为:

<p> {{ newsList }}   </p>
<!--列表每个元素表示不用总括号,用点号-->
<p> {{ newsList.0 }} {{ newsList.1 }}  </p>

6.3 标签语句

标签被 {% 和 %} 包围
网页端语法包括:for,if

<div>
    {% for item in newsList %}
       <span>{{ item }}</span>
    {% endfor %}
</div>
<hr/>
<!--列表,字典渲染。字典元素用点号-->
<ul>
    {% for key in dic.keys %} <!--dic.values-->
    <li>{{ key }}</li>
    {% endfor %}
    {% for k,v in dic.items %}
    <li>{{ k }}={{v}}</li>
    {% endfor %}
</ul>
<hr/>
<!--if语法,注意==前后要空格-->
{% if a == 4 %}
  <h1>hello</h1>
{% else %}
  <h1>jmu</h1>
{% endif %}
posted @ 2022-08-11 15:31  林老师dsc  阅读(517)  评论(0编辑  收藏  举报