Django

Django新手入门

2020-05-25  本文已影响0人  Dxes

使用Django搭建项目

创建并运行Django项目

第一种方式:

1. django-admin startproject appname

2. 使用PyCharm打开项目并创建虚拟环境

~ File ---> Settings ---> Project --->

Project Interpreter ---> Add

~ Terminal --->

python -m venv venv / virtualenv --python=/usr/bin/python3 venv

source venv/bin/activate / "venv/Scripts/activate"

3. 安装项目所需依赖项

pip install django==2.2.12

4. 运行项目

~ python manage.py runserver

~ Add Configuration --> + --> Python

--> Script Path (manage.py)

--> Parameters (runserver)

第二种方式:

1. 用PyCharm创建一个普通的Python项目

2. 安装Django所需的依赖项

~ pip install django==2.2.12

3. 把Python项目变成Django项目

~ django-admin startproject appname .

4. 运行项目

~ 第三种方式:

1. 克隆项目到本地

~ 使用PyCharm的"get from version control"

~ git clone git@gitee.com:jackfrued/appname.git

2. 创建虚拟环境

~ Linux/macOS: source venv/bin/activate

~ Windows: "venv/Scripts/activate"

3. 重建依赖项

~ pip install -r requirements.txt

对本地代码实施版本控制并同步到版本控制服务器

1. git init ---> 将普通文件夹变成版本仓库

2. git add . ---> 将文件从工作区同步到暂存区

3. git commit -m '...' ---> 将文件提交到本地仓库

4. git status / git log

5. git remote add origin <url> ---> 绑定远端仓库

6. git push -u origin master ---> 将本地代码推到服务器

创建数据库,连接数据库

-- 创建数据库

create database appname default charset utf8;

-- 创建用户

create user 'Dxes'@'%' identified by '123456';

-- 给用户授权

grant all privileges on appname.* to 'Dxes'@'%';

将数据库创建好之后,在项目中的配置文件settings.py中配置连接数据库的代码

image
创建应用

~ python manage.py startapp 应用名字

~ django-admin startapp 应用名字

创建好应用之后要在settings.py文件中配置INSTALLED_APPS这个列表数据,在后面添加上你的应用名字:

INSTALLED_APPS = [

.....

'polls',

]

然后在自己创建的应用下的models.py文件中创建自己所需要的模板,例如:

image

之后再在控制台使用

python manage.py makemigrations 应用名字 ---->生成迁移

然后使用python manage.py migrate ----> 执行迁移

迁移成功之后,可到数据库查看建立的表

为了使做练习方便,添加数据更快捷,在django的服务器中有个控制台可以方便向数据库添加数据,

注册模型:

首先:在自己的应用目录下找到admin.py文件,需要在这个文件中注册自己创建的模板使用admin.site.register(自己的模型名,得先导入 )。

image

list_display = () # 页面要显示字段

list_per_page = 条数 # 页面显示数据的条数

search_fields = () # 给页面添加一个搜索框

ordering = ()  # 排序,默认是升序,要降序在字段前加减号.

list_display_links = () # 连接加在那个字段

然后在创建Django后台超级管理员账号

控制台输入:python manage.py createsuperuser

创建好账号之后访问

http://127.0.0.1:8000/admin

使用自己注册的django超级管理员账号密码登录后台查看信息。(添加应用所需数据)

在自己创建的应用下view.py这个文件中编写视图函数,用来渲染前端页面
image

在自己的项目下面可以创建一个templates文件夹用来存放前端的模板文件

在编写完视图函数时,想要页面正常跳转,需要在自己的Django项目下面的urls.py文件中配置需要渲染页面的url

image

注意:创建Django需要有的模板语法和空缺知识点


应用核心:

高内聚 低耦合

high cohesion low coupling

项目架构模式:MVC架构模式

数据和显示要分离(模型和视图解耦合)

同一个模型可以渲染成不同的视图,同一个视图可以加载不同的模型

Model - View - Controller

模型 视图 控制器

数据 数据的显示

Model - Template - View

模型 模板 视图(一部分控制器)

Django框架本身扮演了一部分控制器的角色

views.py - 控制器

​ ~接收用户的请求,验证用请求

​ ~操作模型

​ ~产生响应(渲染页面)

Django ORM框架

对象关系映射框架 - 解决对象模型到关系模型双向转换问题

模板指令

{% if 条件语句%}

{% endif %}

{% for 变量 in 序列 %}

{% endfor %}

{{ 占位符 }}

属性过滤 : 布尔值| yesno: "男, 女"


CSRF ---> 跨站请求伪造 ---> {% csrf_token %}

Cross Site Request Forge

HTTP协议是无连接无状态协议 ---> 两次请求之间不会保存用户的任何数据

再次请求服务器的时候 服务器无法得知请求是来自哪个用户的请求

一般情况下服务器应用都需要记住用户来为用户提供更好的服务

用户跟踪 ---> 如果希望服务器记住用户可以使用以下三种辅助方式:

1. URL重写 http://www.baidu.com/?uid=xxxxxx

2. 隐藏域(隐式表单域)---> 埋点

<form>

    <input type="hidden" name="uid" value="xxxxxx">

</form>

3. 浏览器本地存储

~ cookie - 浏览器中的一个临时文件可以保存键值对

cookie中的数据在发起HTTP请求时会自动加载请求头中

~ window.localStorage / window.sessionStorage

cookie和session的关系

request.session ---> 服务器内存中的一个对象,可以保存用户数据

cookie ---> 用户浏览器临时文件 ---> cookie中保存了session的ID

如果浏览器禁用了cookie会发生什么

BASE64编码 ---> 用64个文字符号表示任意二进制数据

原理:将原来的三字节每6个比特一组变成四个字节

用A-Z、a-z、0-9、+和/一共64个字符来代表一个字节

Python ---> base64模块 ---> b64encode() / b64decode()

JavaScript ---> window ---> btoa() / atob()

非ASCII字符以及特殊字符都不能出现在URL中 需要处理成百分号编码

加密解密 RSA / AES ---> pycrypto

编码解码 base64 / 百分号编码 ---> base64 / urllib.parse

摘要签名 md5 sha1 sha256 sha512 ---> hashlib

上一篇下一篇

猜你喜欢

热点阅读