Web开发 — Python函数库中web框架开发技术及其相关函数的使用方法
WEB框架是web开发中不可或缺的一部分,主要是对路由、模板、ORM等技术进行封装,提供给开发者便捷的开发方式和高效的开发效率。Python的WEB框架主要有Django、Flask、Bottle等,本文将从Django和Flask两个框架入手,介绍其相关函数的使用方法。
Django框架
Django的函数库包括众多的模块,常用的有django.db、django.forms、django.utils等等,下面分别介绍一些函数的使用方法。
1. django.db模块
django.db模块是Django的数据库操作模块,封装了ORM技术,可以通过使用它的模型对象来对数据库进行CRUD操作。在使用之前需要先在settings.py文件中配置好数据库相关信息。
1.1 创建模型
创建模型即创建对应的数据库表结构,使用Django ORM可以通过定义类来创建模型,如下所示:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField(default=0)
1.2 数据库操作
针对上面创建的Person模型,可以进行如下的数据库操作:
# 创建数据 p = Person(name='Tom', age=18) p.save() # 查询数据 Person.objects.all() # 查询所有数据 Person.objects.get(name='Tom') # 根据条件查询 # 更新数据 p.age = 20 p.save() # 删除数据 p.delete()
2. django.forms模块
django.forms模块是Django的表单操作模块,可以通过定义表单类快速创建表单对象,如下所示:
# forms.py
from django import forms
class ContactForm(forms.Form):
name = forms.CharField()
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
3. django.utils模块
django.utils模块是Django的工具类模块,其中包括了很多实用的函数和类。
3.1 django.utils.timezone
django.utils.timezone模块是Django中处理时区相关的模块,可以通过它来获取本地时间和UTC时间等。
from django.utils import timezone # 获取本地时间 now_local = timezone.localtime(timezone.now()) # 获取UTC时间 now_utc = timezone.now()
3.2 django.utils.translation
django.utils.translation模块是Django中处理国际化相关的模块,可以通过它来实现多语言支持。
from django.utils.translation import ugettext as _
# 定义翻译字符串,可以封装到模板中
_("Hello World")
Flask框架
Flask是一个轻量级的WEB框架,比Django更加灵活,可以与其它的库相结合使用。Flask的函数库比较简单,常用的有flask、flask_sqlalchemy、flask_wtf等,下面分别介绍一些函数的使用方法。
1. flask模块
flask模块是Flask的核心模块,包括了路由、session、response等功能,下面分别介绍一些函数的使用方法。
1.1 路由
路由是Flask中的核心概念,通过路由可以将请求与相应的处理函数进行绑定。如下所示:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
1.2 session
session是Flask中的会话管理机制,通过session可以在不同的请求之间共享数据。如下所示:
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'my-secret-key'
@app.route('/set')
def set_session():
session['name'] = 'Tom'
return 'OK'
@app.route('/get')
def get_session():
return session.get('name')
1.3 response
response是Flask中的HTTP响应对象,可以通过response对象设置响应头、响应状态码以及响应体等信息。如下所示:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def index():
data = [{'name': 'Tom', 'age': 18}, {'name': 'Lucy', 'age': 19}]
return jsonify(data)
2. flask_sqlalchemy模块
flask_sqlalchemy模块是Flask中的ORM模块,可以通过定义模型类来创建表结构,并对数据库进行CRUD操作。如下所示:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/dbname'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(50), nullable=False)
age = db.Column(db.Integer, default=0)
db.create_all()
# 创建数据
p = Person(name='Tom', age=18)
db.session.add(p)
db.session.commit()
# 查询数据
Person.query.all()
# 更新数据
p.age = 20
db.session.commit()
# 删除数据
db.session.delete(p)
db.session.commit()
3. flask_wtf模块
flask_wtf模块是Flask中的表单模块,可以通过定义表单类来创建表单对象,并进行表单验证。如下所示:
from flask_wtf import Form
from wtforms import StringField
from wtforms.validators import DataRequired, Email
class ContactForm(Form):
name = StringField('name', validators=[DataRequired()])
email = StringField('email', validators=[DataRequired(), Email()])
message = StringField('message', validators=[DataRequired()])
总结
本文主要介绍了Python函数库中web框架开发技术及其相关函数的使用方法,包括Django框架中的django.db、django.forms、django.utils模块和Flask框架中的flask、flask_sqlalchemy、flask_wtf模块。希望对Python WEB开发的初学者有所帮助。
