django

初识Django
Django是一个Python web框架
创建Django项目
在pycharm中新建Django项目(# 可能会出现安装失败, 可以忽略进去后pip)
# 或者先安装Django --> pip install Django,
再使用Django命令创建项目 --> django-admin startproject 项目名
查看Django版本
python -m django --version
运行项目
python manage.py runserver # 访问成功表示项目创建成功
Django常用命令
创建项目 --> django-admin startproject
创建应用 --> python manage.py startapp
交互调试 --> python manage.py shell
运行项目 --> python manage.py runserver
创建超级用户 --> python manage.py createsuperuser
# 数据库相关
数据库命令行 --> python manage.py dbshell
创建迁移文件 --> python manage.py makemigrations
迁移数据 --> python manage.py migrate
Django项目目录结构
admin.py # 管理数据模型的文件(应用级别)
可以将数据模型注册到该文件中, 方便管理数据模型
from django.contrib import admin
# Register your models here.
from .models import Article # 导入要注册的数据模型
admin.site.register(Article) # 注册

apps.py # 创建应用后自动生成的文件(在该应用目录下), 
    文件中有一个类, 应用名+Config的一个类(这里的应用名首字母大写)
    需要将这个类配置到settings.py文件中

models.py # 写数据模型的文件(应用级别下的)
要继承models下的Model类
from django.db import models
class 模型类(models.Model):
    字段名 = models.类型(约束或者其它参数)
# CharField(字符串类型), TextField(文本类型), DataField(日期类型),
  DataTimeField(日期时间类型), AutoField(自增类型,通常用来作为主键)
CharField类型必须规定最大长度, 例如 open_id = models.CharField(max_length=64)
主键的话不设置也可以, 在建表时会自动生成一个自增主键 id(flask没有主键不行)

test.py # 用于测试的文件(应用级别)

urls.py  # 配置路由的文件, 分为项目级别和应用级别
两者都要导入path(from django.urls import path, include)
都有一个urlpatterns列表
项目级别的urls文件中列表每一项是 path(路由, include('应用.urls'))
# include表示包含, 就是遇到前面规定的路由, 就交给对应的应用来处理
应用级别的urls需要自己创建
应用级别的urls文件中列表每一项是 path(路由, views.视图函数)
# 视图函数是定义在应用中的views.py文件里, 如果是类视图, 要加as_view()
views.py  # 写视图函数和类视图的文件, 主要是应用级别下的
    视图函数要返回一个响应对象或者一个模板, 不能直接返回字符串
可以将要返回的内容封装为HttpResponse对象或者JsonResponse对象
JsonResponse对象如果返回的不是字典格式, 要加上safe参数, safe=False
返回模板的格式为 render(request, '模板文件', 传递的数据(字典形式))
# 模板文件需要在应用目录下新建templates目录, 将模板文件放在该目录下
类视图中的方法可以根据对应的请求命名, 比如get方法就是处理get请求的
# def get(self, request)
settings.py # 项目级别的全局配置文件
DEBUG = True # 调试模式
ALLOWED_HOSTS = ['*'] # 允许访问的主机地址, 设为'*'则本机的所有ip都可以被访问
INSTALLED_APPS = [
		'django.contrib.admin',
		'django.contrib.auth',
		'django.contrib.contenttypes',
		'django.contrib.sessions',
		'django.contrib.messages',
		'django.contrib.staticfiles',
		# myapp
		'polls.apps.PollsConfig',
		'app1.apps.App1Config',
		'juheapp.apps.JuheappConfig'
		] # 添加的app, 创建应用后需要在这个列表中添加 '应用.apps.应用配置类'
MIDDLEWARE = [
	     'django.middleware.security.SecurityMiddleware',
	     'django.contrib.sessions.middleware.SessionMiddleware',  # session中间键
	     'django.middleware.common.CommonMiddleware',
	     # 'django.middleware.csrf.CsrfViewMiddleware',
	     # 需要用到表单提交时可以注释上一行或者在form标签中添加 {% csrf_token %}
	     'django.contrib.auth.middleware.AuthenticationMiddleware',
	     'django.contrib.messages.middleware.MessageMiddleware',
	     'django.middleware.clickjacking.XFrameOptionsMiddleware',
	     ] # 中间键配置
ROOT_URLCONF = 'helloworld.urls' # 起始url, 也就是项目级别的urls
DATABASES = {
	    'default': {
			'ENGINE': 'django.db.backends.sqlite3',
			'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
			}
	    } # 数据库配置
SESSION_COOKIE_AGE = 60 * 20 # session有效时间设置
STATIC_URL = '/static/'  # 静态文件存储配置
STATICFILES_DIRS = (
	            os.path.join(BASE_DIR, 'static').replace('\\', '/'),
		   )

Django + 小程序
api设计 restful设计风格
面向资源
地址 资源 版本 资源a 小资源b 参数
yaml
一种文件格式, 可以使用yaml模块对yaml文件进行解析, 得到资源,版本等信息
解析结果类似于json字符串
Mixin设计思路
可以理解为多类继承, 写一个工具类, 让需要用到该类中的方法的类继承这个工具类
准备工作
在微信公众平台注册一个微信的开发者账号, 得到appid
下载微信开发者工具
打开微信开发者工具, 新建项目(小程序), 输入appid
小程序的目录结构
wxml --> html
wxss --> css
js --> js
json --> json # 配置文件
小程序基础
添加页面
添加页面需要在app.json文件中的pages数组中添加路径
再在app.json文件中的tabBar对象中的list数组中添加路径和标题
wxml中遍历
可以直接在标签中写for循环或者if判断
例如:
{{index}}{{item}}

# wx:for=’{{遍历的数据}}’ index表示索引, item表示遍历得到的每一项
遍历的数据在和这个wxml同名的js文件中的data中
标签绑定事件
在标签中加 bindxxx=‘函数名’, bind后跟事件类型
例如tap表示单击, longpress表示长按
函数同样定义在同级js文件中
微信的一些接口
wx.request
网络请求函数, 可以填写url和method, 请求成功触发success函数, 失败触发fail函数
wx.setStorage
存储, 往本地存储数据, 同样可以触发success函数和fail函数
wx.getStorage 从本地得到数据
wx.removeStorage 删除本地存储的数据
wx.navigateTo 跳转页面, 填写url(跳转的页面的路径)

一些生命周期函数
onload # 页面初次加载时触发
onPullDownRefresh # 页面下拉时触发

导入js文件
const util = require(’…/…/utils/util.js’)
# const js关键字, 定义一个全局只读变量, 相当于常量
这样就可以通过这个常量来使用工具文件夹中定义的js文件中的一些函数
util.函数名
使用第三方工具(导入wxss文件)
创建thirdpaty文件夹, 将wxss文件放入
然后在全局也就是app.wxss文件中导入
@import ‘wxss文件路径’
小程序用户认证登录
首先通过wx.login获取一个code, 然后小程序再将这个code传递给Django后台
后台再拿着这个code和AppID,secretkey去请求微信的认证接口, 得到openID(用户唯一标识)
再将openID通过session返回给小程序, 小程序下次访问就可以携带cookie来让后台可以识别不同用户
有状态的小程序
我们可以将用户的一些信息收集起来, 发送给后台, 存储到数据库中,
用户登录时, 我们可以通过请求后台拿到用户的相关数据返还给小程序端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值