python str.contain,如何写不包含字段
时间: 2024-04-14 18:26:45 浏览: 166
您可以使用逻辑运算符 `not` 结合 `in` 来判断字符串不包含某个字段。下面是一个示例代码:
```python
string = "Hello, world!"
if "foo" not in string:
print("String does not contain 'foo'")
```
在上述代码中,如果字符串 `string` 中不包含子字符串 "foo",则会输出 "String does not contain 'foo'"。您可以将需要判断的字符串和子字符串替换成您自己的内容。
相关问题
2024093098837:1 Each dictionary in the list "icons" should contain a non-empty UTF8 string field "sizes".
这是一个Python编程上下文的问题描述。假设你有一个名为"icons"的列表,其中每个元素都是一个字典(dictionary),并且按照某个需求,这个列表中的每个字典都应该包含一个名为"sizes"的关键字(key),其值是一个非空的UTF-8字符串。UTF-8是一种用于编码文本的标准,确保了字符串可以正确表示各种语言字符。
例如,这样的一个字典结构可能是这样的:
```python
{
'name': 'icon_name', # 可能是图标的名称
'url': 'icon_url', # 图像的URL地址
'sizes': '16x16, 32x32, 48x48' # 不同尺寸的字符串,如"16x16, 32x32, 48x48"
}
```
如果你需要检查并确保所有字典都满足此条件,你可以遍历列表,使用`dict.get()`函数来获取`sizes`字段,并检查返回值是否为空:
```python
for icon in icons:
if not icon.get('sizes') or not isinstance(icon['sizes'], str) or len(icon['sizes'].strip()) == 0:
print(f"Error: {icon} does not have a valid 'sizes' field.")
```
这里我们还额外检查了`sizes`是否为字符串且不为空字符串(去除了前后的空白)。
在flask中的注册界面中,请完成对email、邮箱验证码(6位数字)、用户名(大于4位小于20位)、密码(大于8位,必须有大小写字母和特殊符号)、确认密码(与密码完全一致)、电话(手机号必须11位),QQ号码(纯数字,不小于5位,不大于15位)的表单数据合法性验证的代码示例。并将这些字段存到sqllite数据库中,提供ORM格式的写法。
以下是一个基本的 Flask 注册表单数据合法性验证的代码示例:
```python
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.orm import validates
import re
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(120), unique=True, nullable=False)
username = db.Column(db.String(20), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)
phone = db.Column(db.String(11), unique=True, nullable=False)
qq = db.Column(db.String(15), unique=True, nullable=False)
@validates('email')
def validate_email(self, key, email):
if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
raise ValueError('Invalid email address')
return email
@validates('username')
def validate_username(self, key, username):
if len(username) < 4 or len(username) > 20:
raise ValueError('Username must be between 4 and 20 characters')
return username
@validates('password')
def validate_password(self, key, password):
if len(password) < 8:
raise ValueError('Password must be at least 8 characters')
if not any(char.isdigit() for char in password):
raise ValueError('Password must contain at least one digit')
if not any(char.isupper() for char in password):
raise ValueError('Password must contain at least one uppercase letter')
if not any(char.islower() for char in password):
raise ValueError('Password must contain at least one lowercase letter')
if not any(char in '!@#$%^&*()_-+={}[]|\:;"<>,.?/~`' for char in password):
raise ValueError('Password must contain at least one special character')
return password
@validates('phone')
def validate_phone(self, key, phone):
if not re.match(r"^1[3456789]\d{9}$", phone):
raise ValueError('Invalid phone number')
return phone
@validates('qq')
def validate_qq(self, key, qq):
if not re.match(r"^\d{5,15}$", qq):
raise ValueError('Invalid QQ number')
return qq
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
email = request.form['email']
username = request.form['username']
password = request.form['password']
confirm_password = request.form['confirm_password']
phone = request.form['phone']
qq = request.form['qq']
try:
user = User(email=email, username=username, password=password, phone=phone, qq=qq)
db.session.add(user)
db.session.commit()
return 'Registration successful'
except ValueError as e:
return str(e)
return render_template('register.html')
```
在这个示例中,我们使用了 Flask 和 SQLAlchemy 来创建一个简单的注册表单,其中包含了 email、邮箱验证码、用户名、密码、确认密码、电话和 QQ 号码等字段。我们使用了 SQLAlchemy 的 ORM 功能来将这些字段存储到 SQLite 数据库中。
在 User 类中,我们使用了 @validates 装饰器来对每个字段进行合法性验证。例如,在 validate_email 方法中,我们使用了正则表达式来验证 email 地址的格式是否正确。如果验证失败,我们会抛出一个 ValueError 异常,这个异常会在注册表单提交时被捕获并返回给用户。
在 register 视图函数中,我们首先从表单中获取所有字段的值,然后创建一个 User 对象并将其添加到数据库中。如果添加成功,我们返回一个成功的消息;否则,我们会捕获 ValueError 异常并将其转换为字符串返回给用户。
这个示例只是一个基本的表单验证示例,你可以根据自己的需求进行修改和扩展。
阅读全文